public GameAgentStats(int characterRace, int characterClass, int desiredLevel, int characterWeapon = CharacterClassOptions.RandomClassWeapon) { rng = GameObject.FindGameObjectWithTag("Map").GetComponent <MapConfiguration>().GetRNG(); this.characterRace = characterRace; characterClassOption = characterClass; SetGameAgentCharacterClass(characterWeapon); GetBaseCharacterClassStats(); LevelUpToDesiredLevel(desiredLevel); currentState = GameAgentState.Alive; currentStatus = GameAgentStatusEffect.None; }
public void TakeDamage(int damage) { int damageDealt = damage - defense; if (damageDealt < 1) { damageDealt = 1; } currentHealth -= damageDealt; if (currentHealth <= 0) { currentHealth = 0; currentState = GameAgentState.Unconscious; } }
public GameAgentStats(int characterRace, int characterClass, float attack, float health, float range, float speed, int desiredLevel, int characterWeapon = CharacterClassOptions.RandomClassWeapon) { rng = GameObject.FindGameObjectWithTag("Map").GetComponent <MapConfiguration>().GetRNG(); this.characterRace = characterRace; characterClassOption = characterClass; SetGameAgentCharacterClass(characterWeapon); this.attack = attack; maxHealth = health; currentHealth = health; this.range = range; this.speed = speed; currentState = GameAgentState.Alive; currentStatus = GameAgentStatusEffect.None; LevelUpToDesiredLevel(desiredLevel); }
public override void init_agent(Pos position, GameAgentStats stats, string name = null) { map_manager = GameObject.FindGameObjectWithTag("GameController").GetComponent <MapManager>(); grid_pos = position; animator = GetComponent <CharacterAnimator>(); this.stats = stats; _attack = stats.attack; maxHealth = stats.maxHealth; currentHealth = maxHealth; range = stats.range; _speed = stats.speed; if (name == null) { this.nickname = CharacterRaceOptions.getString(stats.characterRace) + " " + CharacterClassOptions.getWeaponDescriptor(stats.playerCharacterClass.weapon); } else { this.nickname = name; } weapon = stats.playerCharacterClass.weapon; speed = 10; move_budget = 10; level = stats.level; viewableState = stats.currentState; animator = GetComponent <CharacterAnimator>(); classDefiner = GetComponent <CharacterClassDefiner>(); animator.init(); classDefiner.init(stats.characterRace, stats.characterClassOption, stats.playerCharacterClass.weapon); source = GetComponent <AudioSource>(); // AI init team = 1; AI = new AIComponent(this); // AI component that decides the actions for this enemy to take TurnManager.instance.addToRoster(this); SetCurrentAction(0); }