| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/shared/struct/shr_armor.erl')
| -rw-r--r-- | src/shared/struct/shr_armor.erl | 193 | 
1 files changed, 0 insertions, 193 deletions
| diff --git a/src/shared/struct/shr_armor.erl b/src/shared/struct/shr_armor.erl deleted file mode 100644 index fa516f3..0000000 --- a/src/shared/struct/shr_armor.erl +++ /dev/null @@ -1,193 +0,0 @@ --module(shr_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 -   }; -from_id(_) -> -   from_id(0). - --spec random_id () -> id(). -random_id () -> shr_roll:between(0, 4). - --spec apply_to_attributes -   ( -      type(), -      shr_attributes:type() -   ) -   -> shr_attributes:type(). -apply_to_attributes (Ar, Att) -> -   Constitution = shr_attributes:get_constitution(Att), -   Dexterity = shr_attributes:get_dexterity(Att), -   Speed = shr_attributes:get_speed(Att), -   Strength = shr_attributes:get_strength(Att), -   Mind = shr_attributes:get_mind(Att), -   Impact = shr_math_util:ceil(20.0 * Ar#armor.coef), -   HalfImpact = shr_math_util:ceil(10.0 * Ar#armor.coef), -   Category = Ar#armor.category, - -   case Category of -      kinetic -> shr_attributes:set_unsafe_mind((Mind - Impact), Att); -      leather -> -         shr_attributes:set_unsafe_constitution -         ( -            (Constitution - HalfImpact), -            shr_attributes:set_unsafe_dexterity((Dexterity - HalfImpact), Att) -         ); - -      chain -> -         shr_attributes:set_unsafe_constitution -         ( -            (Constitution - HalfImpact), -            shr_attributes:set_unsafe_dexterity -            ( -               (Dexterity - HalfImpact), -               shr_attributes:set_unsafe_speed((Speed - Impact), Att) -            ) -         ); - -      plate -> -         shr_attributes:set_unsafe_constitution -         ( -            (Constitution - HalfImpact), -            shr_attributes:set_unsafe_dexterity -            ( -               (Dexterity - HalfImpact), -               shr_attributes:set_unsafe_speed -               ( -                  (Speed - Impact), -                  shr_attributes:set_unsafe_strength((Strength - Impact), Att) -               ) -            ) -         ) -   end. - --spec get_resistance_to (shr_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), - -   shr_math_util:ceil(ActualResistance). | 


