Info_Map.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace loyalsoft;
  3. /**
  4. * 玩家关卡地图数据
  5. * @author gwang
  6. * @version
  7. * 1.0.0 Created at 2021年3月2日14:32:52 关卡分三层处理 大陆->区域->关卡.
  8. */
  9. class Info_Map extends Object_ext {
  10. /**
  11. * 大陆数据
  12. * @var dict<int,Ins_Mainland>
  13. */
  14. public $mainlands;
  15. function __construct($arg = null) {
  16. if (null === $arg) {
  17. // 直接初始化8个大陆的基本数据
  18. $this->mainlands = ObjectInit();
  19. foreach (GameConfig::gate_mainland() as $id => $land) {
  20. $ins = new Ins_Mainland();
  21. $ins->landId = $id;
  22. if (1 == $id) { # 第一个大陆, 直接开启第一个区域
  23. $zones = explode(',', $land->containZones);
  24. $zoneid = $zones[0];
  25. $zone = new Ins_Mapzone();
  26. $zone->zoneid = $zoneid;
  27. $zonecfg = GameConfig::gate_zone_getItem($zoneid);
  28. my_Assert($zonecfg, ErrCode::err_const_no);
  29. $gateIds = explode(',', $zonecfg->contains);
  30. $zone->gates[] = $gateIds[0];
  31. $ins->normal->$zoneid = $zone;
  32. }
  33. $this->mainlands->$id = $ins;
  34. }
  35. } else {
  36. parent::__construct($arg);
  37. }
  38. }
  39. }