Class PlayerAbstract

The base class of MainChar and Enemy.

Hierarchy (view full)

Constructors

Properties

agi: number

The player agility points.

atk: number

The player attack points.

base_turns: number

The base amount of turns that this player has.

battle_animations_variations: {
    [ability_key: string]: string;
}

This maps a given ability key to a non-default ability animation key.

Type declaration

  • [ability_key: string]: string
battle_scale: number

The player battle scale.

battle_shadow_key: string

The player battle shadow sprite key.

before_buff_stats: {
    agi: number;
    atk: number;
    current_hp: number;
    current_pp: number;
    def: number;
    luk: number;
    max_hp: number;
    max_pp: number;
}

This player stats before applying buffers.

Type declaration

  • agi: number
  • atk: number
  • current_hp: number
  • current_pp: number
  • def: number
  • luk: number
  • max_hp: number
  • max_pp: number
buff_stats: {
    agi: number;
    atk: number;
    current_hp: number;
    current_pp: number;
    def: number;
    luk: number;
    max_hp: number;
    max_pp: number;
}

Stats points added/decreased by ability (buffers debuffers) on this player.

Type declaration

  • agi: number
  • atk: number
  • current_hp: number
  • current_pp: number
  • def: number
  • luk: number
  • max_hp: number
  • max_pp: number
current_exp: number

The player current experience points.

current_hp: number

The player current HP.

current_pp: number

The player current PP.

data: GoldenSun

Main GoldenSun object.

def: number

The player defense points.

effect_turns_count: {
    [effect: string]: number | {
        [element: string]: number;
    };
}

The effect: remaining turns to vanish dictionary.

Type declaration

  • [effect: string]: number | {
        [element: string]: number;
    }
effects: Effect[]

The list of Effects that affect this player.

elemental_base: {
    level?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    };
    power?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    };
    resist?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    };
}

Type declaration

  • Optional level?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    }

    The elemental level base value stats object.

    • all_elements: number
    • jupiter: number
    • mars: number
    • mercury: number
    • no_element: number
    • venus: number
  • Optional power?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    }

    The elemental power base value stats object.

    • all_elements: number
    • jupiter: number
    • mars: number
    • mercury: number
    • no_element: number
    • venus: number
  • Optional resist?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    }

    The elemental resist base value stats object.

    • all_elements: number
    • jupiter: number
    • mars: number
    • mercury: number
    • no_element: number
    • venus: number
elemental_before_buff: {
    power?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    };
    resist?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    };
}

Type declaration

  • Optional power?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    }

    The elemental power before buffs stats object.

    • all_elements: number
    • jupiter: number
    • mars: number
    • mercury: number
    • no_element: number
    • venus: number
  • Optional resist?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    }

    The elemental resist before buffs stats object.

    • all_elements: number
    • jupiter: number
    • mars: number
    • mercury: number
    • no_element: number
    • venus: number
elemental_buff: {
    power?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    };
    resist?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    };
}

Type declaration

  • Optional power?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    }

    The elemental power added by buffs stats object.

    • all_elements: number
    • jupiter: number
    • mars: number
    • mercury: number
    • no_element: number
    • venus: number
  • Optional resist?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    }

    The elemental resist added by buffs stats object.

    • all_elements: number
    • jupiter: number
    • mars: number
    • mercury: number
    • no_element: number
    • venus: number
elemental_current: {
    level?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    };
    power?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    };
    resist?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    };
}

Type declaration

  • Optional level?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    }

    The elemental level stats object.

    • all_elements: number
    • jupiter: number
    • mars: number
    • mercury: number
    • no_element: number
    • venus: number
  • Optional power?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    }

    The elemental power stats object.

    • all_elements: number
    • jupiter: number
    • mars: number
    • mercury: number
    • no_element: number
    • venus: number
  • Optional resist?: {
        all_elements: number;
        jupiter: number;
        mars: number;
        mercury: number;
        no_element: number;
        venus: number;
    }

    The elemental resist stats object.

    • all_elements: number
    • jupiter: number
    • mars: number
    • mercury: number
    • no_element: number
    • venus: number
extra_stats: {
    agi: number;
    atk: number;
    current_hp: number;
    current_pp: number;
    def: number;
    luk: number;
    max_hp: number;
    max_pp: number;
}

Any extra stats points added to the main stats of this player.

Type declaration

  • agi: number
  • atk: number
  • current_hp: number
  • current_pp: number
  • def: number
  • luk: number
  • max_hp: number
  • max_pp: number
extra_turns: number

The extra amount of turns that this player has.

fighter_type: fighter_types

Whether it's an ally or enemy in the main party point of view.

hp_recovery: number

The player HP recovery points.

key_name: string

The player key name.

level: number

The player current level.

luk: number

The player luck points.

max_hp: number

The player max HP.

max_pp: number

The player max PP.

name: string

The player name.

on_status_change: Subject<{
    added: boolean;
    status: permanent_status | temporary_status;
}>

The rxjs Subject that's triggered when this player suffers a status change.

Type declaration

paralyzed_by_effect: boolean

Whether the player is paralyzed by any Effect in battle.

permanent_status: Set<permanent_status>

The permanent status set. Use this property only to check whether the player has a given status.

pp_recovery: number

The player PP recovery points.

status_sprite_shift: number

The aditional shift added to status sprite in battle.

temporary_status: Set<temporary_status>

The temporary status set. Use this property only to check whether the player has a given status.

turns: number

The current amount of turns that this player has.

Methods

  • Parameters

    • effect_obj: any
    • effect_owner_instance: Ability | Item
    • apply: boolean = false

    Returns {
        changes: {
            after?: number;
            all_elements?: boolean;
            before?: number;
            removed_effects?: Effect[];
        };
        effect: Effect;
    }

    • changes: {
          after?: number;
          all_elements?: boolean;
          before?: number;
          removed_effects?: Effect[];
      }
      • Optional after?: number
      • Optional all_elements?: boolean
      • Optional before?: number
      • Optional removed_effects?: Effect[]
    • effect: Effect
  • When starting a battle, resets all temporary status and buffers turns count values.

    Returns void

  • Parameters

    • include_downed: boolean = false
    • exclude_no_downed_anim: boolean = false

    Returns boolean

  • Parameters

    • effect_to_remove: Effect
    • apply: boolean = false

    Returns void

  • Parameters

    • effect: any
    • value: number = -1
    • relative: boolean = true

    Returns any

  • Updates all stats, class info and abilities of this player.

    Returns any