Example #1
0
    /// <summary>
    /// 同步所有单位的属性
    /// </summary>
    private void SyncAllUnitAttr()
    {
        proto.S2CSyncUnitAttr attrList = new proto.S2CSyncUnitAttr();
        for (int i = 0; i < EntityManager.Instance.AttackUnitList.Count; ++i)
        {
            proto.UnitAttri attr   = new proto.UnitAttri();
            ShipEntity      entity = EntityManager.Instance.AttackUnitList[i] as ShipEntity;
            attr.unitid      = entity.ID;
            attr.durablility = entity.GetDurability();
            attr.armor       = entity.GetArmouredShield();
            attr.energy      = entity.GetEnergyShield();
            attrList.add_unitattrlist(attr);
        }

        for (int i = 0; i < EntityManager.Instance.DefenderUnitList.Count; ++i)
        {
            proto.UnitAttri attr   = new proto.UnitAttri();
            ShipEntity      entity = EntityManager.Instance.DefenderUnitList[i] as ShipEntity;
            attr.unitid      = entity.ID;
            attr.durablility = entity.GetDurability();
            attr.armor       = entity.GetArmouredShield();
            attr.energy      = entity.GetEnergyShield();
            attrList.add_unitattrlist(attr);
        }

        BattleSys.OnSyncUnitAttr(attrList);
    }
Example #2
0
    public void SyncAttr(proto.UnitAttri attribute)
    {
        ClientShip_.Armor      = attribute.armor;
        ClientShip_.Durability = attribute.durablility;
        ClientShip_.Energy     = attribute.energy;

        this.BattleShipInfo_.SyncAttr(ClientShip_.Durability, ClientShip_.Energy, ClientShip_.Armor);
    }
Example #3
0
    private static bool SetShip(bool bPlayer, proto.UnitAttri attribute)
    {
        List <ClientShip> shipList = bPlayer ? PlayerShipList : EnemyShipList;

        foreach (var iter in shipList)
        {
            if (iter.InFightID != attribute.unitid)
            {
                continue;
            }
            iter.Armor      = attribute.armor;
            iter.Durability = attribute.durablility;
            iter.Energy     = attribute.energy;
            return(true);
        }
        return(SetShip(!bPlayer, attribute));
    }
Example #4
0
    public static void OnSyncUnitAttr(proto.S2CSyncUnitAttr msg)
    {
        for (int i = 0; i < msg.unitattrlist_size(); i++)
        {
            proto.UnitAttri attribute = msg.unitattrlist(i);
            //SetShip( true, attribute );
            // TODO::
            // 临时解决办法,待重构
            var teamDisplay = BattleSceneDisplayManager.Instance.GetTeamDisplay(attribute.unitid);
            if (teamDisplay != null)
            {
                teamDisplay.SyncAttr(attribute);
            }
        }

        if (EventOnSyncUnitAttr != null)
        {
            EventOnSyncUnitAttr(msg);
        }
    }