public ActionCharacter(BattleStatus status, GroupId groupId, GroupTag tag, Vector pos, float gravity, float runSpeed, SkillHolder skillHolder, EquipItemHolder equipItemHolder) { CurrentState = new Idle(); Executioner = new Executioner(); CurrentPosition = pos; Gravity = gravity; SkillHolder = skillHolder; PickupItemHolder = new PickupItemHolder(); PickupItemHolder.OnPickedItem += UpdateBattleStatus; PickupItemHolder.OnPickedItem += UpdateRunMaxSpeed; EquipItemHolder = equipItemHolder; BaseStatus = status; BattleCharacter = new BattleCharacter(this, BattleStatusCalculator.calculate(status, this)); BasicRunMaxSpeed = runSpeed; RunMaxSpeed = SpeedCalculator.Calculate(BasicRunMaxSpeed, this); GroupId = groupId; GroupTag = tag; Id = Guid.NewGuid(); IsInvincible = false; CurrentFriction = 0.0f; }
public BattleCharacter(ICharacterable owner, BattleStatus _status) { this.owner = owner; BattleStatus = _status; // 現在HPを最大にしておく CurrentHitPoint = status.HitPoint; Stamina = new Stamina(BattleStatus.Stamina, BattleStatus.StaminaHealInterval, BattleStatus.StaminaHealValuePerInterval); }
public static BattleStatus calculate(BattleStatus basicStatus, ICharacterable characterable) { return(basicStatus + characterable.EquipItemHolder.GetBattleStatus() + characterable.PickupItemHolder.GetBattleStatus()); }