예제 #1
0
    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;
    }
예제 #2
0
    public void TakeDamage(int damage)
    {
        int damageDealt = damage - defense;

        if (damageDealt < 1)
        {
            damageDealt = 1;
        }
        currentHealth -= damageDealt;

        if (currentHealth <= 0)
        {
            currentHealth = 0;
            currentState  = GameAgentState.Unconscious;
        }
    }
예제 #3
0
    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);
    }
예제 #4
0
    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);
    }