public void InitInMultiMode(CSEntity m_Entity, int ownerId) { m_Type = GetMTypeFromProtoId(itemDrag.itemObj.protoId); this.m_Entity = m_Entity; m_Entity.gameLogic = gameObject; _peEntity = gameObject.GetComponent <PeEntity>(); _peTrans = gameObject.GetComponent <PeTrans>(); _skEntity = gameObject.GetComponent <PESkEntity>(); _skEntity.m_Attrs = new PESkEntity.Attr[5]; _skEntity.m_Attrs[0] = new PESkEntity.Attr(); _skEntity.m_Attrs[1] = new PESkEntity.Attr(); _skEntity.m_Attrs[2] = new PESkEntity.Attr(); _skEntity.m_Attrs[3] = new PESkEntity.Attr(); _skEntity.m_Attrs[4] = new PESkEntity.Attr(); _skEntity.m_Attrs[0].m_Type = AttribType.HpMax; _skEntity.m_Attrs[1].m_Type = AttribType.Hp; _skEntity.m_Attrs[2].m_Type = AttribType.CampID; _skEntity.m_Attrs[3].m_Type = AttribType.DefaultPlayerID; _skEntity.m_Attrs[4].m_Type = AttribType.DamageID; _skEntity.m_Attrs[0].m_Value = m_Entity.MaxDurability; _skEntity.m_Attrs[1].m_Value = m_Entity.CurrentDurability; _skEntity.m_Attrs[2].m_Value = 1; _skEntity.m_Attrs[3].m_Value = ownerId; PeEntity ownerEntity = EntityMgr.Instance.Get(ownerId); if (ownerEntity != null) { _skEntity.m_Attrs[2].m_Value = ownerEntity.GetAttribute(AttribType.CampID); _skEntity.m_Attrs[4].m_Value = ownerEntity.GetAttribute(AttribType.DamageID); } _skEntity.onHpChange += OnHpChange; if (m_Type == CSConst.ObjectType.Assembly) { _skEntity.onHpChange += SendHpChangeMessage; } _skEntity.deathEvent += OnDeathEvent; _skEntity.InitEntity(); OnHpChange(_skEntity, 0); EntityMgr.Instance.InitEntity(InstanceId, _peEntity.gameObject); //if(m_Type == CSConst.ObjectType.Processing) //{ // network.InitResultPos(m_ResultTrans); //} m_Entity.m_MgCreator.AddLogic(id, this); if (CSMain.s_MgCreator == m_Entity.m_MgCreator && m_Entity as CSAssembly != null) { //Vector3 travelPos = gameObject.transform.position + new Vector3(0, 2, 0); if (travelTrans != null) { //travelPos = travelTrans.position; } } StartCoroutine(SetFirstConstruct()); }
void Start() { if (!GameConfig.IsMultiMode) { m_Type = GetMTypeFromProtoId(itemDrag.itemObj.protoId); CSMgCreator creator = CSMain.s_MgCreator; if (creator != null) { CSEntityAttr attr = new CSEntityAttr(); attr.m_InstanceId = InstanceId; attr.m_protoId = protoId; attr.m_Type = (int)m_Type; attr.m_Pos = transform.position; attr.m_LogicObj = gameObject; //attr.m_Bound = GetObjectBounds(); //attr.m_Bound.center = transform.TransformPoint(attr.m_Bound.center); //attr.m_ColonyBase = _ColonyObj; int r = creator.CreateEntity(attr, out m_Entity); if (r != CSConst.rrtSucceed) { Debug.LogError("Error with Init Entities"); return; } _peEntity = gameObject.GetComponent <PeEntity>(); _peTrans = gameObject.GetComponent <PeTrans>(); _skEntity = gameObject.GetComponent <PESkEntity>(); _skEntity.m_Attrs = new PESkEntity.Attr[5]; _skEntity.m_Attrs[0] = new PESkEntity.Attr(); _skEntity.m_Attrs[1] = new PESkEntity.Attr(); _skEntity.m_Attrs[2] = new PESkEntity.Attr(); _skEntity.m_Attrs[3] = new PESkEntity.Attr(); _skEntity.m_Attrs[4] = new PESkEntity.Attr(); _skEntity.m_Attrs[0].m_Type = AttribType.HpMax; _skEntity.m_Attrs[1].m_Type = AttribType.Hp; _skEntity.m_Attrs[2].m_Type = AttribType.CampID; _skEntity.m_Attrs[3].m_Type = AttribType.DefaultPlayerID; _skEntity.m_Attrs[4].m_Type = AttribType.DamageID; _skEntity.m_Attrs[0].m_Value = m_Entity.MaxDurability; _skEntity.m_Attrs[1].m_Value = m_Entity.CurrentDurability; _skEntity.m_Attrs[2].m_Value = PeCreature.Instance.mainPlayer.GetAttribute(AttribType.CampID); _skEntity.m_Attrs[3].m_Value = ForceConstant.PLAYER; _skEntity.m_Attrs[4].m_Value = PeCreature.Instance.mainPlayer.GetAttribute(AttribType.DamageID); _skEntity.onHpChange += OnHpChange; if (m_Type == CSConst.ObjectType.Assembly) { _skEntity.onHpChange += SendHpChangeMessage; } _skEntity.deathEvent += OnDeathEvent; _skEntity.InitEntity(); m_Entity.onDuraChange = SetHp; OnHpChange(_skEntity, 0); int entityId = Pathea.WorldInfoMgr.Instance.FetchNonRecordAutoId(); EntityMgr.Instance.InitEntity(entityId, _peEntity.gameObject); creator.AddLogic(id, this); } StartCoroutine(SetFirstConstruct()); } }
public bool IsOutOfLimit(CSConst.ObjectType type) { if (m_ObjLimitMap[type] <= m_BelongObjectsMap[type].Count) { return(true); } return(false); }
public bool OutOfCount(CSConst.ObjectType type) { int count = m_BelongObjectsMap[type].Count; if (count < m_ObjLimitMap[type]) { return(true); } return(false); }
public int AttachCommonEntity(CSCommon csc) { if (csc.Assembly == this) { return(CSConst.rrtUnkown); } if (!InRange(csc.Position)) { return(CSConst.rrtOutOfRadius); } CSConst.ObjectType type = (CSConst.ObjectType)csc.m_Type; if (IsOutOfLimit(type)) { return(CSConst.rrtOutOfRange); } // m_BelongObjectsMap[(CSConst.ObjectType) csc.m_Type].Add(csc); AddBelongBuilding((CSConst.ObjectType)csc.m_Type, csc); csc.Assembly = this; CSElectric cse = csc as CSElectric; if (cse != null) { foreach (CSCommon power in AllPowerPlants) { CSPowerPlant cspp = power as CSPowerPlant; cspp.AttachElectric(cse); if (cse.IsRunning) { break; } } } csc.ChangeState(); return(CSConst.rrtSucceed); }
public static CSConst.ObjectType GetMTypeFromProtoId(int protoId) { CSConst.ObjectType m_Type = CSConst.ObjectType.None; switch (protoId) { case ColonyIDInfo.COLONY_ASSEMBLY: m_Type = CSConst.ObjectType.Assembly; break; case ColonyIDInfo.COLONY_PPCOAL: m_Type = CSConst.ObjectType.PowerPlant_Coal; break; case ColonyIDInfo.COLONY_STORAGE: m_Type = CSConst.ObjectType.Storage; break; case ColonyIDInfo.COLONY_REPAIR: m_Type = CSConst.ObjectType.Repair; break; case ColonyIDInfo.COLONY_DWELLINGS: m_Type = CSConst.ObjectType.Dwelling; break; case ColonyIDInfo.COLONY_ENHANCE: m_Type = CSConst.ObjectType.Enhance; break; case ColonyIDInfo.COLONY_RECYCLE: m_Type = CSConst.ObjectType.Recyle; break; case ColonyIDInfo.COLONY_FARM: m_Type = CSConst.ObjectType.Farm; break; case ColonyIDInfo.COLONY_FACTORY: m_Type = CSConst.ObjectType.Factory; break; case ColonyIDInfo.COLONY_PROCESSING: m_Type = CSConst.ObjectType.Processing; break; case ColonyIDInfo.COLONY_TRADE: m_Type = CSConst.ObjectType.Trade; break; case ColonyIDInfo.COLONY_TRAIN: m_Type = CSConst.ObjectType.Train; break; case ColonyIDInfo.COLONY_CHECK: m_Type = CSConst.ObjectType.Check; break; case ColonyIDInfo.COLONY_TREAT: m_Type = CSConst.ObjectType.Treat; break; case ColonyIDInfo.COLONY_TENT: m_Type = CSConst.ObjectType.Tent; break; case ColonyIDInfo.COLONY_FUSION: m_Type = CSConst.ObjectType.PowerPlant_Fusion; break; default: break; } return(m_Type); }
public void RemoveBelongBuilding(CSConst.ObjectType type, CSCommon building) { m_BelongObjectsMap[type].Remove(building); ExcuteEvent(CSConst.eetAssembly_RemoveBuilding, building); }
public void AddBelongBuilding(CSConst.ObjectType type, CSCommon building) { m_BelongObjectsMap[type].Add(building); ExcuteEvent(CSConst.eetAssembly_AddBuilding, building); }
public static bool IsPowerPlant(CSConst.ObjectType type) { return(type == CSConst.ObjectType.PowerPlant_Coal || type == CSConst.ObjectType.PowerPlant_Fusion); }
public int GetLimitCnt(CSConst.ObjectType type) { return(m_ObjLimitMap[type]); }
public int GetEntityCnt(CSConst.ObjectType type) { return(m_BelongObjectsMap[type].Count); }