public static void SendTreat(long targetID, GameObjectType.ENUM targetType, long sourceID, GameObjectType.ENUM sourceType, BattleAction_Treat.TreatSrcType treatType, long benefit, long hp, Pos position)
    {
        BattleAction_Treat battleAction_Treat = new BattleAction_Treat();

        battleAction_Treat.beTreatedSoldierId = targetID;
        battleAction_Treat.beTreatedWrapType  = targetType;
        battleAction_Treat.treatSrcSoldierId  = sourceID;
        battleAction_Treat.treatSrcWrapType   = sourceType;
        battleAction_Treat.treatSrcType       = treatType;
        battleAction_Treat.treatHp            = benefit;
        battleAction_Treat.hp  = hp;
        battleAction_Treat.pos = position;
        EventDispatcher.Broadcast <BattleAction_Treat, bool>(BattleActionEvent.Treat, battleAction_Treat, false);
    }
示例#2
0
        public void Treat(BattleAction_Treat data, bool isServerData)
        {
            if (data.beTreatedSoldierId != this.owner.ID)
            {
                return;
            }
            Vector3 casterPosition = Vector3.get_zero();

            if (EntityWorld.Instance.AllEntities.ContainsKey(data.treatSrcSoldierId))
            {
                bool flag;
                if (EntityWorld.Instance.AllEntities[data.treatSrcSoldierId].Actor)
                {
                    flag           = true;
                    casterPosition = EntityWorld.Instance.AllEntities[data.treatSrcSoldierId].Actor.FixTransform.get_position();
                }
                else
                {
                    flag = (data.pos != null);
                    if (flag)
                    {
                        casterPosition = XUtility.GetTerrainPoint(data.pos.x * 0.01f, data.pos.y * 0.01f, 0f);
                    }
                }
                this.owner.SetHPChange(HPChangeMessage.GetTreatMessage(data.treatHp, data.treatSrcType, this.owner, EntityWorld.Instance.AllEntities[data.treatSrcSoldierId], flag, casterPosition));
            }
            else
            {
                bool flag = data.pos != null;
                if (flag)
                {
                    casterPosition = XUtility.GetTerrainPoint(data.pos.x * 0.01f, data.pos.y * 0.01f, 0f);
                }
                this.owner.SetHPChange(HPChangeMessage.GetTreatMessage(data.treatHp, data.treatSrcType, this.owner, null, flag, casterPosition));
            }
            this.owner.Hp = data.hp;
        }