private int _GetTotalInterns(bool IncludeWaitingToSpawn) { int count = 0; for (int i = 0; i < mWorld.mUnits.Count; ++i) { CUnit unit = mWorld.mUnits[i]; if (unit.mOwner == mPlayerId && unit.mIntern) { ++count; } } if (IncludeWaitingToSpawn) { CItemStart itemStart = mWorld.GetEntity <CItemStart>(mWorld.mPlayers[mPlayerId].mSpawnItemID); if (itemStart != null) { for (int i = 0; i < itemStart.mEvents.Count; ++i) { if (itemStart.mEvents[i].mType == CElevatorEvent.EType.T_SPAWN_UNIT) { if (itemStart.mEvents[i].mInfo2 == 0) { ++count; } } } } } return(count); }
public Vector2 GetSpawnPos() { CItemStart start = _world.GetEntity <CItemStart>(mSpawnItemID); if (start != null) { return(start.mSpawnPos); } return(new Vector2(10, 10)); }
/// <summary> /// Creates entity and assigns ID. /// </summary> public static CEntity Create(EType Type, CWorld World, int ID = 0) { CEntity entity = null; switch (Type) { case EType.UNIT: entity = new CUnit(); break; case EType.ITEM_START: entity = new CItemStart(); break; case EType.ITEM_DECO: entity = new CItemDeco(); break; case EType.ITEM_DESK: entity = new CItemDesk(); break; case EType.ITEM_SAFE: entity = new CItemSafe(); break; case EType.ITEM_REST: entity = new CItemRest(); break; case EType.ITEM_FOOD: entity = new CItemFood(); break; case EType.ITEM_DOOR: entity = new CItemDoor(); break; case EType.RESUME: entity = new CResume(); break; case EType.CONTRACT: entity = new CContract(); break; case EType.PICKUP: entity = new CPickup(); break; case EType.MISSILE: entity = new CMissile(); break; case EType.VOLUME: entity = new CVolume(); break; case EType.DECAL: entity = new CDecal(); break; } if (entity != null) { _InitNewEntity(entity, World, ID); } else { Debug.LogError("Entity Factory couldn't create a " + (int)Type + " is"); } return(entity); }