summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-02-23 22:47:43 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-02-23 22:47:43 +0100 |
commit | 96c35eb8c79826fa07d2b00bbac039d9ec95eb3c (patch) | |
tree | 94d7fef850637be6fd800f139a59d578763ba671 /src/struct/character_instance.erl | |
parent | 959b994bced0863d4b8a984f38f5ac61aa3620e0 (diff) |
...
Diffstat (limited to 'src/struct/character_instance.erl')
-rw-r--r-- | src/struct/character_instance.erl | 126 |
1 files changed, 47 insertions, 79 deletions
diff --git a/src/struct/character_instance.erl b/src/struct/character_instance.erl index 63045a7..c530424 100644 --- a/src/struct/character_instance.erl +++ b/src/struct/character_instance.erl @@ -7,120 +7,88 @@ ( character_instance, { - x, - y, - health, - team, - active_wp, - stats + character, + location, + current_health, + active } ). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%% Accessors -export ( [ - get_location/1, - get_current_health/1, - get_owner/1, - get_active_weapon/2, - get_statistics/1, - set_location/3, - mod_health/3 + new/2 ] ). -%%%% Utils +%%%% Accessors -export ( [ - new_instance_of/3, - switch_weapon/2, - is_dead/1 % is_alive is reserved. + get_character/1, + get_location/1, + get_current_health/1, + get_is_active/1, + + set_character/2, + set_location/2, + set_current_health/2, + set_is_active/2 ] ). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -get_new_weapon(CharInst, Char) -> - case CharInst#character_instance.active_wp of - 0 -> - {_, Weapon} = character:get_weapons(Char), - {1, Weapon}; - - 1 -> - {Weapon, _} = character:get_weapons(Char), - {0, Weapon} - end. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% Accessors -get_location (CharInst) -> - {CharInst#character_instance.x, CharInst#character_instance.y}. - -get_current_health (CharInst) -> CharInst#character_instance.health. - -get_owner (CharInst) -> CharInst#character_instance.team. - -get_active_weapon (CharInst, Char) -> - case CharInst#character_instance.active_wp of - 0 -> - {_, Weapon} = character:get_weapons(Char), - Weapon; - - 1 -> - {Weapon, _} = character:get_weapons(Char), - Weapon - end. - -get_statistics (CharInst) -> CharInst#character_instance.stats. - -set_location (CharInst, X, Y) -> +get_character (CharInst) -> CharInst#character_instance.character. +get_location (CharInst) -> CharInst#character_instance.location. +get_current_health (CharInst) -> CharInst#character_instance.current_health. +get_is_active (CharInst) -> + ( + CharInst#character_instance.active + and + (CharInst#character_instance.current_health > 0) + ). + +set_character (Char, CharInst) -> CharInst#character_instance { - x = X, - y = Y + character = Char }. -mod_health (CharInst, MaxHealth, HealthMod) -> - NewHealth = (CharInst#character_instance.health + HealthMod), - if - (NewHealth < 0) -> - CharInst#character_instance{ health = 0 }; - - (NewHealth > MaxHealth) -> - CharInst#character_instance{ health = MaxHealth }; - - true -> - CharInst#character_instance{ health = NewHealth } - end. +set_location (Location, CharInst) -> + CharInst#character_instance + { + location = Location + }. -%%%% Utils -new_instance_of (Char, Owner, {X, Y}) -> - {Weapon, _} = character:get_weapons(Char), - Stats = statistics:calc_for(character:get_attributes(Char), Weapon), - #character_instance +set_current_health (Health, CharInst) -> + CharInst#character_instance { - x = X, - y = Y, - health = statistics:get_health(Stats), - team = Owner, - stats = Stats, - active_wp = 0 + current_health = Health }. -switch_weapon (CharInst, Char) -> - {NewWpIndex, Weapon} = get_new_weapon(CharInst, Char), +set_is_active (Active, CharInst) -> CharInst#character_instance { - active_wp = NewWpIndex, - stats = statistics:calc_for(character:get_attributes(Char), Weapon) + active = Active }. -is_dead (CharInst) -> (CharInst#character_instance.health == 0). +%%%% Utils +new (Char, Location) -> + Stats = character:get_statistics(Char), + #character_instance + { + character = Char, + location = Location, + current_health = statistics:get_health(Stats), + active = false + }. |