summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-07-11 18:02:26 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-07-11 18:02:26 +0200
commitacb9dd3220a3edcac93aa11d1d74d008e2fb23ed (patch)
tree98b45af3f7eb9c7d812ed33a07e6a0f665a7a8cd /src/shared/struct/sh_armor.erl
parentfde827cba1ff3d889135c74ee1978098465fd200 (diff)
"sh_" -> "shr_".
Diffstat (limited to 'src/shared/struct/sh_armor.erl')
-rw-r--r--src/shared/struct/sh_armor.erl185
1 files changed, 0 insertions, 185 deletions
diff --git a/src/shared/struct/sh_armor.erl b/src/shared/struct/sh_armor.erl
deleted file mode 100644
index cea2ce9..0000000
--- a/src/shared/struct/sh_armor.erl
+++ /dev/null
@@ -1,185 +0,0 @@
--module(sh_armor).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--opaque id() :: non_neg_integer().
-
--type category() :: 'kinetic' | 'leather' | 'chain' | 'plate'.
-
--record
-(
- armor,
- {
- id :: id(),
- name :: binary(),
- category :: category(),
- coef :: float()
- }
-).
-
--opaque type() :: #armor{}.
-
--export_type([type/0, id/0]).
--export_type ([category/0]).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%% Accessors
--export
-(
- [
- get_id/1,
- get_name/1,
- get_coefficient/1,
- get_category/1
- ]
-).
-
--export
-(
- [
- random_id/0,
- from_id/1,
- apply_to_attributes/2,
- get_resistance_to/2
- ]
-).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%% Accessors
--spec get_id (type()) -> id().
-get_id (Ar) -> Ar#armor.id.
-
--spec get_name (type()) -> binary().
-get_name (Ar) -> Ar#armor.name.
-
--spec get_coefficient (type()) -> float().
-get_coefficient (Ar) -> Ar#armor.coef.
-
--spec get_category (type()) -> category().
-get_category (Ar) -> Ar#armor.category.
-
--spec from_id (id()) -> type().
-from_id (0) ->
- #armor{
- id = 0,
- name = <<"None">>,
- category = leather,
- coef = 0.0
- };
-from_id (1) ->
- #armor{
- id = 1,
- name = <<"Last Meal's Pelts">>,
- category = leather,
- coef = 0.5
- };
-from_id (2) ->
- #armor{
- id = 2,
- name = <<"Bits of Wall">>,
- category = plate,
- coef = 0.5
- };
-from_id (3) ->
- #armor{
- id = 3,
- name = <<"Garden Fence">>,
- category = chain,
- coef = 0.5
- };
-from_id (4) ->
- #armor{
- id = 4,
- name = <<"Morrigan's Pity">>,
- category = kinetic,
- coef = 0.5
- }.
-
--spec random_id () -> id().
-random_id () -> sh_roll:between(0, 4).
-
--spec apply_to_attributes
- (
- type(),
- sh_attributes:type()
- )
- -> sh_attributes:type().
-apply_to_attributes (Ar, Att) ->
- Constitution = sh_attributes:get_constitution(Att),
- Dexterity = sh_attributes:get_dexterity(Att),
- Speed = sh_attributes:get_speed(Att),
- Strength = sh_attributes:get_strength(Att),
- Mind = sh_attributes:get_mind(Att),
- Impact = sh_math_util:ceil(20.0 * Ar#armor.coef),
- HalfImpact = sh_math_util:ceil(10.0 * Ar#armor.coef),
- Category = Ar#armor.category,
-
- case Category of
- kinetic -> sh_attributes:set_unsafe_mind((Mind - Impact), Att);
- leather ->
- sh_attributes:set_unsafe_constitution
- (
- (Constitution - HalfImpact),
- sh_attributes:set_unsafe_dexterity((Dexterity - HalfImpact), Att)
- );
-
- chain ->
- sh_attributes:set_unsafe_constitution
- (
- (Constitution - HalfImpact),
- sh_attributes:set_unsafe_dexterity
- (
- (Dexterity - HalfImpact),
- sh_attributes:set_unsafe_speed((Speed - Impact), Att)
- )
- );
-
- plate ->
- sh_attributes:set_unsafe_constitution
- (
- (Constitution - HalfImpact),
- sh_attributes:set_unsafe_dexterity
- (
- (Dexterity - HalfImpact),
- sh_attributes:set_unsafe_speed
- (
- (Speed - Impact),
- sh_attributes:set_unsafe_strength((Strength - Impact), Att)
- )
- )
- )
- end.
-
--spec get_resistance_to (sh_weapon:damage_type(), type()) -> non_neg_integer().
-get_resistance_to (DamageType, Armor) ->
- ArmorCategory = Armor#armor.category,
- BaseResistance =
- case {DamageType, ArmorCategory} of
- {slash, kinetic} -> 0.0;
- {slash, leather} -> 20.0;
- {slash, chain} -> 30.0;
- {slash, plate} -> 30.0;
- {blunt, kinetic} -> 20.0;
- {blunt, leather} -> 20.0;
- {blunt, chain} -> 20.0;
- {blunt, plate} -> 20.0;
- {pierce, kinetic} -> 20.0;
- {pierce, leather} -> 20.0;
- {pierce, chain} -> 20.0;
- {pierce, plate} -> 30.0
- end,
-
- ArmorCoefficient = Armor#armor.coef,
- ActualResistance = (ArmorCoefficient * BaseResistance),
-
- sh_math_util:ceil(ActualResistance).