| summaryrefslogtreecommitdiff | 
diff options
| -rw-r--r-- | src/battlemap/src/Data/Weapons.elm | 2 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/Marker.elm | 1 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/Navigator.elm | 7 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/RangeIndicator.elm | 20 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/Weapon.elm | 28 | ||||
| -rw-r--r-- | src/battlemap/src/Update/SelectCharacter.elm | 49 | ||||
| -rw-r--r-- | src/battlemap/src/Update/SwitchWeapon.elm | 5 | ||||
| -rw-r--r-- | src/battlemap/src/View/Battlemap/Navigator.elm | 9 | ||||
| -rw-r--r-- | src/battlemap/src/View/SideBar/TabMenu/Status/CharacterInfo.elm | 8 | ||||
| -rw-r--r-- | src/battlemap/www/style.css | 11 | 
10 files changed, 85 insertions, 55 deletions
| diff --git a/src/battlemap/src/Data/Weapons.elm b/src/battlemap/src/Data/Weapons.elm index 35d3fc7..4aa8ca2 100644 --- a/src/battlemap/src/Data/Weapons.elm +++ b/src/battlemap/src/Data/Weapons.elm @@ -153,7 +153,7 @@ dataset =              Struct.Weapon.Melee              Struct.Weapon.Long              Struct.Weapon.Blunt -            Struct.Weapon.Light +            Struct.Weapon.Heavy           )        ),        ( diff --git a/src/battlemap/src/Struct/Marker.elm b/src/battlemap/src/Struct/Marker.elm index dd884e2..58a7fc9 100644 --- a/src/battlemap/src/Struct/Marker.elm +++ b/src/battlemap/src/Struct/Marker.elm @@ -6,3 +6,4 @@ module Struct.Marker exposing (Type(..))  type Type =     CanAttack     | CanGoTo +   | CantDefend diff --git a/src/battlemap/src/Struct/Navigator.elm b/src/battlemap/src/Struct/Navigator.elm index 8e8d0f5..18bf9e3 100644 --- a/src/battlemap/src/Struct/Navigator.elm +++ b/src/battlemap/src/Struct/Navigator.elm @@ -32,6 +32,7 @@ type alias Type =        starting_location: Struct.Location.Type,        movement_dist: Int,        attack_dist: Int, +      defense_dist: Int,        path: Struct.Path.Type,        locked_path: Bool,        range_indicators: @@ -60,14 +61,16 @@ new : (        Struct.Location.Type ->        Int ->        Int -> +      Int ->        (Struct.Location.Type -> Int) ->        Type     ) -new start_loc mov_dist atk_dist cost_fun = +new start_loc mov_dist atk_dist def_dist cost_fun =     {        starting_location = start_loc,        movement_dist = mov_dist,        attack_dist = atk_dist, +      defense_dist = def_dist,        path = (Struct.Path.new start_loc mov_dist),        locked_path = False,        range_indicators = @@ -75,6 +78,7 @@ new start_loc mov_dist atk_dist cost_fun =              start_loc              mov_dist              atk_dist +            0              (cost_fun)           ),        cost_fun = cost_fun @@ -145,6 +149,7 @@ lock_path navigator =              (Struct.Path.get_current_location navigator.path)              0              navigator.attack_dist +            navigator.defense_dist              (navigator.cost_fun)           ),        locked_path = True diff --git a/src/battlemap/src/Struct/RangeIndicator.elm b/src/battlemap/src/Struct/RangeIndicator.elm index 90328a3..c224db3 100644 --- a/src/battlemap/src/Struct/RangeIndicator.elm +++ b/src/battlemap/src/Struct/RangeIndicator.elm @@ -144,10 +144,11 @@ search : (        (Dict.Dict Struct.Location.Ref Type) ->        Int ->        Int -> +      Int ->        (Struct.Location.Type -> Int) ->        (Dict.Dict Struct.Location.Ref Type)     ) -search result remaining dist range cost_fun = +search result remaining dist atk_range def_range cost_fun =     if (Dict.isEmpty remaining)     then        result @@ -176,7 +177,11 @@ search result remaining dist range cost_fun =                       (                          if (min.range > 0)                          then -                           Struct.Marker.CanAttack +                           if (min.range <= def_range) +                           then +                              Struct.Marker.CantDefend +                           else +                              Struct.Marker.CanAttack                          else                             Struct.Marker.CanGoTo                       ) @@ -188,7 +193,7 @@ search result remaining dist range cost_fun =                    min                    (Struct.Location.from_ref min_loc_ref)                    dist -                  range +                  atk_range                    result                    (cost_fun)                 ) @@ -201,7 +206,8 @@ search result remaining dist range cost_fun =                 ]              )              dist -            range +            atk_range +            def_range              (cost_fun)           ) @@ -212,10 +218,11 @@ generate : (        Struct.Location.Type ->        Int ->        Int -> +      Int ->        (Struct.Location.Type -> Int) ->        (Dict.Dict Struct.Location.Ref Type)     ) -generate location dist range cost_fun = +generate location dist atk_range def_range cost_fun =     (search        Dict.empty        (Dict.insert @@ -229,7 +236,8 @@ generate location dist range cost_fun =           Dict.empty        )        dist -      range +      atk_range +      def_range        (cost_fun)     ) diff --git a/src/battlemap/src/Struct/Weapon.elm b/src/battlemap/src/Struct/Weapon.elm index 5741a2a..d1d5807 100644 --- a/src/battlemap/src/Struct/Weapon.elm +++ b/src/battlemap/src/Struct/Weapon.elm @@ -12,8 +12,8 @@ module Struct.Weapon exposing        get_range_modifier,        get_damage_type,        get_damage_modifier, -      get_max_range, -      get_min_range, +      get_attack_range, +      get_defense_range,        get_max_damage,        get_min_damage,        apply_to_attributes @@ -33,8 +33,8 @@ type alias Type =        range_mod : RangeModifier,        dmg_type : DamageType,        dmg_mod : DamageModifier, -      range_min : Int, -      range_max : Int, +      def_range : Int, +      atk_range : Int,        dmg_min : Int,        dmg_max : Int     } @@ -61,9 +61,9 @@ get_ranges : RangeType -> RangeModifier -> (Int, Int)  get_ranges rt rm =     case (rt, rm) of        (Ranged, Long) -> (2, 6) -      (Ranged, Short) -> (2, 4) -      (Melee, Long) -> (1, 2) -      (Melee, Short) -> (1, 1) +      (Ranged, Short) -> (1, 4) +      (Melee, Long) -> (0, 2) +      (Melee, Short) -> (0, 1)  get_damages : RangeType -> DamageModifier -> (Int, Int)  get_damages rt dm = @@ -91,7 +91,7 @@ new     dmg_type dmg_mod     =     let -      (range_min, range_max) = (get_ranges range_type range_mod) +      (def_range, atk_range) = (get_ranges range_type range_mod)        (dmg_min, dmg_max) = (get_damages range_type dmg_mod)     in     { @@ -101,8 +101,8 @@ new        range_mod = range_mod,        dmg_type = dmg_type,        dmg_mod = dmg_mod, -      range_min = range_min, -      range_max = range_max, +      def_range = def_range, +      atk_range = atk_range,        dmg_min = dmg_min,        dmg_max = dmg_max     } @@ -122,11 +122,11 @@ get_damage_type wp = wp.dmg_type  get_damage_modifier : Type -> DamageModifier  get_damage_modifier wp = wp.dmg_mod -get_max_range : Type -> Int -get_max_range wp = wp.range_max +get_attack_range : Type -> Int +get_attack_range wp = wp.atk_range -get_min_range : Type -> Int -get_min_range wp = wp.range_min +get_defense_range : Type -> Int +get_defense_range wp = wp.def_range  get_max_damage : Type -> Int  get_max_damage wp = wp.dmg_max diff --git a/src/battlemap/src/Update/SelectCharacter.elm b/src/battlemap/src/Update/SelectCharacter.elm index 05099ba..9e14791 100644 --- a/src/battlemap/src/Update/SelectCharacter.elm +++ b/src/battlemap/src/Update/SelectCharacter.elm @@ -43,32 +43,35 @@ ctrl_or_focus_character : (  ctrl_or_focus_character model target_char_id target_char =     if (Struct.Character.is_enabled target_char)     then -      {model | -         char_turn = -            (Struct.CharacterTurn.set_navigator -               (Struct.Navigator.new -                  (Struct.Character.get_location target_char) -                  (Struct.Statistics.get_movement_points -                     (Struct.Character.get_statistics target_char) -                  ) -                  (Struct.Weapon.get_max_range -                     (Struct.WeaponSet.get_active_weapon -                        (Struct.Character.get_weapons target_char) +      let +         weapon = +            (Struct.WeaponSet.get_active_weapon +               (Struct.Character.get_weapons target_char) +            ) +      in +         {model | +            char_turn = +               (Struct.CharacterTurn.set_navigator +                  (Struct.Navigator.new +                     (Struct.Character.get_location target_char) +                     (Struct.Statistics.get_movement_points +                        (Struct.Character.get_statistics target_char) +                     ) +                     (Struct.Weapon.get_attack_range weapon) +                     (Struct.Weapon.get_defense_range weapon) +                     (Struct.Battlemap.get_movement_cost_function +                        model.battlemap +                        (Struct.Character.get_location target_char) +                        (Dict.values model.characters)                       )                    ) -                  (Struct.Battlemap.get_movement_cost_function -                     model.battlemap -                     (Struct.Character.get_location target_char) -                     (Dict.values model.characters) +                  (Struct.CharacterTurn.set_active_character +                     target_char +                     model.char_turn                    ) -               ) -               (Struct.CharacterTurn.set_active_character -                  target_char -                  model.char_turn -               ) -            ), -         ui = (Struct.UI.set_previous_action model.ui Nothing) -      } +               ), +            ui = (Struct.UI.set_previous_action model.ui Nothing) +         }     else        {model |           ui = diff --git a/src/battlemap/src/Update/SwitchWeapon.elm b/src/battlemap/src/Update/SwitchWeapon.elm index e958891..7eed323 100644 --- a/src/battlemap/src/Update/SwitchWeapon.elm +++ b/src/battlemap/src/Update/SwitchWeapon.elm @@ -37,7 +37,10 @@ make_it_so model =                          (Struct.Statistics.get_movement_points                             (Struct.Character.get_statistics new_char)                          ) -                        (Struct.Weapon.get_max_range +                        (Struct.Weapon.get_attack_range +                           (Struct.WeaponSet.get_active_weapon new_weapons) +                        ) +                        (Struct.Weapon.get_defense_range                             (Struct.WeaponSet.get_active_weapon new_weapons)                          )                          (Struct.Battlemap.get_movement_cost_function diff --git a/src/battlemap/src/View/Battlemap/Navigator.elm b/src/battlemap/src/View/Battlemap/Navigator.elm index 28313e0..f114b82 100644 --- a/src/battlemap/src/View/Battlemap/Navigator.elm +++ b/src/battlemap/src/View/Battlemap/Navigator.elm @@ -35,11 +35,10 @@ marker_get_html is_interactive (loc_ref, marker) =                    "battlemap-"                    ++                    ( -                     if (marker == Struct.Marker.CanGoTo) -                     then -                        "can-go-to" -                     else -                        "can-attack" +                     case marker of +                        Struct.Marker.CanGoTo -> "can-go-to" +                        Struct.Marker.CanAttack -> "can-attack" +                        Struct.Marker.CantDefend -> "cant-defend"                    )                    ++                    "-marker" diff --git a/src/battlemap/src/View/SideBar/TabMenu/Status/CharacterInfo.elm b/src/battlemap/src/View/SideBar/TabMenu/Status/CharacterInfo.elm index 13eed02..6620ecc 100644 --- a/src/battlemap/src/View/SideBar/TabMenu/Status/CharacterInfo.elm +++ b/src/battlemap/src/View/SideBar/TabMenu/Status/CharacterInfo.elm @@ -242,11 +242,11 @@ get_weapon_html wp =              [                 (Html.text                    ( -                     "Range: [" -                     ++ (toString (Struct.Weapon.get_min_range wp)) +                     "Range: (" +                     ++ (toString (Struct.Weapon.get_defense_range wp))                       ++ ", " -                     ++ (toString (Struct.Weapon.get_max_range wp)) -                     ++ "]" +                     ++ (toString (Struct.Weapon.get_attack_range wp)) +                     ++ ")"                    )                 )              ] diff --git a/src/battlemap/www/style.css b/src/battlemap/www/style.css index 17dd289..5ee6ef2 100644 --- a/src/battlemap/www/style.css +++ b/src/battlemap/www/style.css @@ -175,6 +175,17 @@  .battlemap-can-go-to-marker   {background-color:rgba(0,0,0,0.5);}  .battlemap-can-attack-marker  {background-color:rgba(0,0,0,0.7);} +.battlemap-cant-defend-marker +{ +   background: +      repeating-linear-gradient( +        -55deg, +        rgba(0,0,0,0), +        rgba(0,0,0,0) 3px, +        rgba(0,0,0,0.7) 3px, +        rgba(0,0,0,0.7) 7px +      ); +}  .battlemap-character-icon-disabled  { | 


