| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/battlemap.erl | 5 | ||||
| -rw-r--r-- | src/battlemap_instance.erl | 14 | ||||
| -rw-r--r-- | src/character.erl | 7 | ||||
| -rw-r--r-- | src/character_instance.erl | 17 | ||||
| -rw-r--r-- | src/character_shim.erl | 1 | ||||
| -rw-r--r-- | src/database_shim.erl | 3 | ||||
| -rw-r--r-- | src/timed_cache_data.hrl | 4 | 
7 files changed, 39 insertions, 12 deletions
| diff --git a/src/battlemap.erl b/src/battlemap.erl index d8940e9..ba89733 100644 --- a/src/battlemap.erl +++ b/src/battlemap.erl @@ -1,5 +1,8 @@  -module(battlemap). - +-export([dist/2]).  -include("timed_cache_data.hrl").  -include("battlemap/cross.erl"). + +dist ({OX, OY}, {DX, DY}) -> +   (abs(OX - DX) + abs(OY + DY)). diff --git a/src/battlemap_instance.erl b/src/battlemap_instance.erl index 3f4b6cd..afe6e32 100644 --- a/src/battlemap_instance.erl +++ b/src/battlemap_instance.erl @@ -27,13 +27,13 @@ can_play_char_instance  ) ->     (        ( -            array:get -            ( -               BattlemapInstance#battlemap_instance.curr_player, -               BattlemapInstance#battlemap_instance.players -            ) -            =:= -            PlayerID +         array:get +         ( +            BattlemapInstance#battlemap_instance.curr_player, +            BattlemapInstance#battlemap_instance.players +         ) +         =:= +         PlayerID        )        and        lists:member(CharInstID, BattlemapInstance#battlemap_instance.rem_chars) diff --git a/src/character.erl b/src/character.erl index f596570..4da1684 100644 --- a/src/character.erl +++ b/src/character.erl @@ -2,10 +2,15 @@  -export  (     [ -      get_movement_points/1 +      get_movement_points/1, +      get_attack_range/1, +      get_max_health/1     ]  ).  -include("timed_cache_data.hrl").  get_movement_points (Char) -> Char#character.mov_pts. +get_attack_range (Char) -> Char#character.atk_rg. + +get_max_health (Char) -> Char#character.health. diff --git a/src/character_instance.erl b/src/character_instance.erl index a38be5d..e1cf7fe 100644 --- a/src/character_instance.erl +++ b/src/character_instance.erl @@ -3,6 +3,8 @@  (     [        set_location/3, +      mod_health/3, +      is_dead/1, % is_alive is reserved.        get_location/1,        get_owner/1     ] @@ -17,6 +19,21 @@ set_location (CharInst, X, Y) ->        y = Y     }. +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. + +is_dead (CharInst) -> (CharInst#character_instance.health == 0). +  get_location (CharInst) ->     {CharInst#character_instance.x, CharInst#character_instance.y}. diff --git a/src/character_shim.erl b/src/character_shim.erl index 0ab33cb..47d9cac 100644 --- a/src/character_shim.erl +++ b/src/character_shim.erl @@ -19,6 +19,7 @@ generate_char (N) ->        name = IDAsString, % Name        icon = IDAsString, % Icon        portrait = IDAsString, % Portrait +      health = (rand:uniform(5) + 1),        mov_pts = (rand:uniform(10) + 10), % Movement Points        atk_rg = (rand:uniform(5) - 1) % Attack Range     }. diff --git a/src/database_shim.erl b/src/database_shim.erl index 1966b6b..c840009 100644 --- a/src/database_shim.erl +++ b/src/database_shim.erl @@ -41,7 +41,8 @@ generate_char_instances (Battlemap, Characters) ->              {                 x = rand:uniform(Battlemap#battlemap.width - 1),                 y = rand:uniform(Battlemap#battlemap.height - 1), -               team = (rand:uniform(2) - 1) +               team = (rand:uniform(2) - 1), +               health = Char#character.health              }           }        end, diff --git a/src/timed_cache_data.hrl b/src/timed_cache_data.hrl index 23441d3..89e0f41 100644 --- a/src/timed_cache_data.hrl +++ b/src/timed_cache_data.hrl @@ -1,9 +1,9 @@  %% TODO: add types.  -record(battlemap, {id, width, height, content, instances}).  -record(battlemap_instance, {id, chars, curr_player, players, rem_chars, last_turn}). --record(character, {id, name, icon, portrait, mov_pts, atk_rg}). +-record(character, {id, name, icon, portrait, health, mov_pts, atk_rg}).  -record(character_turn, {id, path, target}).  -record(player, {id, battlemaps, characters}).  %% Not stored in its own timed cache. --record(character_instance, {x, y, team}). +-record(character_instance, {x, y, health, team}). | 


