Exemple #1
0
    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());
    }
Exemple #2
0
    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());
        }
    }
Exemple #3
0
    public bool IsOutOfLimit(CSConst.ObjectType type)
    {
        if (m_ObjLimitMap[type] <= m_BelongObjectsMap[type].Count)
        {
            return(true);
        }

        return(false);
    }
Exemple #4
0
    public bool OutOfCount(CSConst.ObjectType type)
    {
        int count = m_BelongObjectsMap[type].Count;

        if (count < m_ObjLimitMap[type])
        {
            return(true);
        }
        return(false);
    }
Exemple #5
0
    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);
    }
Exemple #6
0
    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);
    }
Exemple #7
0
 public void RemoveBelongBuilding(CSConst.ObjectType type, CSCommon building)
 {
     m_BelongObjectsMap[type].Remove(building);
     ExcuteEvent(CSConst.eetAssembly_RemoveBuilding, building);
 }
Exemple #8
0
 public void AddBelongBuilding(CSConst.ObjectType type, CSCommon building)
 {
     m_BelongObjectsMap[type].Add(building);
     ExcuteEvent(CSConst.eetAssembly_AddBuilding, building);
 }
Exemple #9
0
 public static bool IsPowerPlant(CSConst.ObjectType type)
 {
     return(type == CSConst.ObjectType.PowerPlant_Coal || type == CSConst.ObjectType.PowerPlant_Fusion);
 }
Exemple #10
0
 public int GetLimitCnt(CSConst.ObjectType type)
 {
     return(m_ObjLimitMap[type]);
 }
Exemple #11
0
 public int GetEntityCnt(CSConst.ObjectType type)
 {
     return(m_BelongObjectsMap[type].Count);
 }