public CharacterStatus(CharacterStatusInfo info) { Info = info; Strength = new IntReactiveProperty(0); Agility = new IntReactiveProperty(0); MaxHealth = new ReactiveProperty <float>(Info.MaxHealth); MoveSpeed = new ReactiveProperty <float>(Info.MoveSpeed); ModifierCalculator = new ModifierCalculator(); ModifierCalculator.Changed += OnModifiersChange; }
public virtual Character GetCharacter(Vector3 startingPosition, CharacterStatusInfo replacementStatusInfo = null) { var inputSource = new ClickInputSource(); var pawn = Instantiate(pawnPrefab, startingPosition, Quaternion.identity) as CharacterPawn; var result = new Character( pawn, inputSource, replacementStatusInfo == null ? statusInfo.GetInstance() : replacementStatusInfo.GetInstance(), stateControllerInfo.GetStateController(), weaponStateControllerInfo.GetStateController(), teamId, this); return(result); }
public override Character GetCharacter(Vector3 startingPosition, CharacterStatusInfo replacementStatusInfo = null) { var inputSource = GambitListInfo.GetGambitList(); var pawn = Instantiate(replacementStatusInfo == null ? pawnPrefab : (replacementStatusInfo as EnemyCharacterStatusInfo).PawnPrefab, startingPosition, Quaternion.identity) as CharacterPawn; var status = replacementStatusInfo == null?EnemyStatusInfo.GetInstance() : replacementStatusInfo.GetInstance(); var result = new Character( pawn, inputSource, status, stateControllerInfo.GetStateController(), weaponStateControllerInfo.GetStateController(), teamId, this); pawn.GetSphereSensor().SetRadius((status.Info as EnemyCharacterStatusInfo).AggroRadius); inputSource.Initialize(result); return(result); }