public override void Bleed(BattleAction_Bleed data, bool isServerData) { if (data.bleedSoldierId != this.owner.ID) { return; } if (EntityWorld.Instance.AllEntities.ContainsKey(data.dmgSrcSoldierId)) { this.owner.SetHPChange(HPChangeMessage.GetDamageMessage(data.bleedHp, data.dmgSrcType, data.elemType, this.owner, EntityWorld.Instance.AllEntities[data.dmgSrcSoldierId], data.isCrt, data.isParry, data.isMiss)); if (data.hp <= 0L && DataReader <AvatarModel> .Get(this.owner.FixModelID).noTurn == 0 && !this.owner.IsLogicBoss && this.owner.Actor && !this.owner.Actor.IsLockModelDir) { Vector3 position = EntityWorld.Instance.AllEntities[data.dmgSrcSoldierId].Actor.FixTransform.get_position(); Vector3 vector = new Vector3(position.x - this.owner.Actor.FixTransform.get_position().x, 0f, position.z - this.owner.Actor.FixTransform.get_position().z); if (vector != Vector3.get_zero()) { this.owner.Actor.ForceSetDirection(vector); this.owner.Actor.ApplyMovingDirAsForward(); } } } else { this.owner.SetHPChange(HPChangeMessage.GetDamageMessage(data.bleedHp, data.dmgSrcType, data.elemType, this.owner, null, data.isCrt, data.isParry, data.isMiss)); } this.owner.DamageSourceID = data.dmgSrcSoldierId; this.owner.Hp = data.hp; }
public static void SendBleed(long targetID, GameObjectType.ENUM targetType, long sourceID, GameObjectType.ENUM sourceType, BattleAction_Bleed.DmgSrcType dmgType, ElemType.ENUM elementType, long damage, long hp, bool isCrt, bool isParry, bool isMiss) { BattleAction_Bleed battleAction_Bleed = new BattleAction_Bleed(); battleAction_Bleed.bleedSoldierId = targetID; battleAction_Bleed.bleedSoldierWrapType = targetType; battleAction_Bleed.dmgSrcSoldierId = sourceID; battleAction_Bleed.dmgSrcWrapType = sourceType; battleAction_Bleed.dmgSrcType = dmgType; battleAction_Bleed.elemType = elementType; battleAction_Bleed.bleedHp = damage; battleAction_Bleed.hp = hp; battleAction_Bleed.isCrt = isCrt; battleAction_Bleed.isParry = isParry; battleAction_Bleed.isMiss = isMiss; EventDispatcher.Broadcast <BattleAction_Bleed, bool>(BattleActionEvent.Bleed, battleAction_Bleed, false); }
public virtual void Bleed(BattleAction_Bleed data, bool isServerData) { if (data.bleedSoldierId != this.owner.ID) { return; } if (EntityWorld.Instance.AllEntities.ContainsKey(data.dmgSrcSoldierId)) { this.owner.SetHPChange(HPChangeMessage.GetDamageMessage(data.bleedHp, data.dmgSrcType, data.elemType, this.owner, EntityWorld.Instance.AllEntities[data.dmgSrcSoldierId], data.isCrt, data.isParry, data.isMiss)); } else { this.owner.SetHPChange(HPChangeMessage.GetDamageMessage(data.bleedHp, data.dmgSrcType, data.elemType, this.owner, null, data.isCrt, data.isParry, data.isMiss)); } this.owner.DamageSourceID = data.dmgSrcSoldierId; this.owner.Hp = data.hp; }