summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-02-22 13:43:14 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-02-22 13:43:14 +0100 |
commit | 970ed1bec29fca4ea1eccaeaccbbdc82292805da (patch) | |
tree | aada40e88a7715b2a4d3924dcf6ba48baed77559 | |
parent | 4dff804ebbc4444232626f37c6bacfe67dd14c68 (diff) |
Replaces min/max ranges with def and atk ranges.
-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 { |