| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/struct')
| -rw-r--r-- | src/struct/battlemap.erl | 2 | ||||
| -rw-r--r-- | src/struct/battlemap_instance.erl | 36 | ||||
| -rw-r--r-- | src/struct/player_turn.erl | 10 | ||||
| -rw-r--r-- | src/struct/weapon.erl | 11 | 
4 files changed, 38 insertions, 21 deletions
| diff --git a/src/struct/battlemap.erl b/src/struct/battlemap.erl index b999436..733f76c 100644 --- a/src/struct/battlemap.erl +++ b/src/struct/battlemap.erl @@ -68,5 +68,5 @@ random (ID, Width, Height) ->        id = ID,        width = Width,        height = Height, -      tile_ids = TileIDs +      tile_ids = array:from_list(TileIDs)     }. diff --git a/src/struct/battlemap_instance.erl b/src/struct/battlemap_instance.erl index d031ccd..bae7a4a 100644 --- a/src/struct/battlemap_instance.erl +++ b/src/struct/battlemap_instance.erl @@ -10,7 +10,7 @@        id,        battlemap,        character_instances, -      players, +      player_ids,        current_player_turn,        last_turns_effects     } @@ -26,13 +26,13 @@        get_id/1,        get_battlemap/1,        get_character_instances/1, -      get_players/1, +      get_player_ids/1,        get_current_player_turn/1,        get_last_turns_effects/1,        set_battlemap/2,        set_character_instances/2, -      set_players/2, +      set_player_ids/2,        set_current_player_turn/2,        set_last_turns_effects/2     ] @@ -61,8 +61,8 @@ get_battlemap (BattlemapInstance) ->  get_character_instances (BattlemapInstance) ->     BattlemapInstance#battlemap_instance.character_instances. -get_players (BattlemapInstance) -> -   BattlemapInstance#battlemap_instance.players. +get_player_ids (BattlemapInstance) -> +   BattlemapInstance#battlemap_instance.player_ids.  get_current_player_turn (BattlemapInstance) ->     BattlemapInstance#battlemap_instance.current_player_turn. @@ -82,10 +82,10 @@ set_character_instances (CharacterInstances, BattlemapInstance) ->        character_instances = CharacterInstances     }. -set_players (Players, BattlemapInstance) -> +set_player_ids (Players, BattlemapInstance) ->     BattlemapInstance#battlemap_instance     { -      players = Players +      player_ids = Players     }.  set_current_player_turn (PlayerTurn, BattlemapInstance) -> @@ -103,10 +103,11 @@ set_last_turns_effects (Effects, BattlemapInstance) ->  random (ID, PlayersAsList, Battlemap, Characters) ->     BattlemapWidth = battlemap:get_width(Battlemap),     BattlemapHeight = battlemap:get_height(Battlemap), -   CharacterInstancesAsList = +   {CharacterInstancesAsList, _ForbiddenLocations} =        lists:mapfoldl        (           fun (Character, ForbiddenLocations) -> +            CharacterOwner = character:get_owner_id(Character),              NewCharacterInstance =                 character_instance:random                 ( @@ -115,13 +116,26 @@ random (ID, PlayersAsList, Battlemap, Characters) ->                    BattlemapHeight,                    ForbiddenLocations                 ), +            NewCharacterInstanceActive = +               case CharacterOwner of +                  <<"0">> -> +                     character_instance:set_is_active +                     ( +                        true, +                        NewCharacterInstance +                     ); + +                  _ -> +                     NewCharacterInstance +               end,              NewCharacterInstanceLocation = -               character_instance:get_location(NewCharacterInstance), +               character_instance:get_location(NewCharacterInstanceActive),              { -               NewCharacterInstance, +               NewCharacterInstanceActive,                 [NewCharacterInstanceLocation|ForbiddenLocations]              }           end, +         [],           Characters        ), @@ -130,7 +144,7 @@ random (ID, PlayersAsList, Battlemap, Characters) ->        id = ID,        battlemap = Battlemap,        character_instances = array:from_list(CharacterInstancesAsList), -      players = array:from_list(PlayersAsList), +      player_ids = array:from_list(PlayersAsList),        current_player_turn = player_turn:new(0, 0),        last_turns_effects = []     }. diff --git a/src/struct/player_turn.erl b/src/struct/player_turn.erl index b973135..e49156e 100644 --- a/src/struct/player_turn.erl +++ b/src/struct/player_turn.erl @@ -8,7 +8,7 @@     player_turn,     {        number, -      player_id +      player_ix     }  ). @@ -27,7 +27,7 @@  (     [        get_number/1, -      get_player_id/1 +      get_player_ix/1     ]  ). @@ -39,13 +39,13 @@  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%% Accessors -new (Number, PlayerID) -> +new (Number, PlayerIX) ->     #player_turn     {        number = Number, -      player_id = PlayerID +      player_ix = PlayerIX     }.  get_number (PlayerTurn) -> PlayerTurn#player_turn.number. -get_player_id (PlayerTurn) -> PlayerTurn#player_turn.player_id. +get_player_ix (PlayerTurn) -> PlayerTurn#player_turn.player_ix. diff --git a/src/struct/weapon.erl b/src/struct/weapon.erl index ca74ada..41f99f8 100644 --- a/src/struct/weapon.erl +++ b/src/struct/weapon.erl @@ -24,16 +24,17 @@  (     [        get_id/1, -      random_id/0 +      get_range_type/1, +      get_ranges/1, +      get_damages/1     ]  ).  -export  (     [ +      random_id/0,        from_id/1, -      get_ranges/1, -      get_damages/1,        apply_to_attributes/2     ]  ). @@ -57,6 +58,8 @@ damages_of_type (melee, light) -> {15, 30}.  %%%% Accessors  get_id (Wp) -> Wp#weapon.id. +get_range_type (Wp) -> Wp#weapon.range_type. +  get_ranges (Wp) ->     ranges_of_type(Wp#weapon.range_type, Wp#weapon.range_mod).  get_damages (Wp) -> @@ -293,7 +296,7 @@ random_id () ->  apply_to_attributes (Attributes, Weapon) ->     Dexterity = attributes:get_dexterity(Attributes), -   Speed = attributes:get_dexterity(Attributes), +   Speed = attributes:get_speed(Attributes),     RangeModifier = Weapon#weapon.range_mod,     DamageModifier = Weapon#weapon.damage_mod,     WithRangeModifier = | 


