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); }
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; }