summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md6
-rw-r--r--app/models/character.rb10
-rw-r--r--app/models/concerns/has_costs_and_requirements.rb6
-rw-r--r--data/activities.yml60
-rw-r--r--data/items.yml33
5 files changed, 88 insertions, 27 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index aeb3184..53201bd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,10 @@ All notable changes to this project will be documented in this file.
via a link on the Character view. (Hopefully) obviously, kills before this release were not counted.
### Activities
+- Planequarry activities now require a pickaxe, wealdreap activities now require an axe, magiculture activities now
+ require a spade, and base timers and item speed bonuses have been adjusted appropriately
+- Planequarry at the Brine Trench base duration changed from 60 to 50 (should have been like, 120 before but it was
+ mistakenly set to 60, and now it's being adjusted for the tool/timer changes in this release)
- Planequarry XP award changes
- Pure iron ore 25 -> 18
- Gaian ore 50 -> 25
@@ -44,6 +48,8 @@ All notable changes to this project will be documented in this file.
### Items
- New item: faint mana
+- Iron lockpicks now increase synthsever speed by 10 seconds
+- Axes, pickaxes, and spades skill speed increase numbers all adjusted to compensate for base timer reductions
### Hearth
- New amenity: binding array (level 1, level 2)
diff --git a/app/models/character.rb b/app/models/character.rb
index 9db3f8c..a26fb93 100644
--- a/app/models/character.rb
+++ b/app/models/character.rb
@@ -162,6 +162,10 @@ class Character < ApplicationRecord
self.equipment.find_by(item: item)
end
+ def equipment_with_tag(tag)
+ self.equipment.all.find { |e| e.item.has_tag?(tag) }
+ end
+
def open_slots_for(item)
full_slots = self.equipment.map { |e| e.slot }
item.equip_slots.reject { |slot| full_slots.include?(slot) }
@@ -297,7 +301,11 @@ class Character < ApplicationRecord
activity.whatnot[:requirements]&.each do |requirement|
case requirement[:type]
when "equipment"
- return false unless self.equipment_with_gid(requirement[:gid])
+ if requirement[:tag]
+ return false unless self.equipment_with_tag(requirement[:tag])
+ else
+ return false unless self.equipment_with_gid(requirement[:gid])
+ end
when "stat"
# TODO: HACK: This won't work with built-in stats! Need to change this to work with power and whatnot.
return false unless self.total_stat_change(requirement[:gid]) >= requirement[:value]
diff --git a/app/models/concerns/has_costs_and_requirements.rb b/app/models/concerns/has_costs_and_requirements.rb
index 9f859f5..9c4abf8 100644
--- a/app/models/concerns/has_costs_and_requirements.rb
+++ b/app/models/concerns/has_costs_and_requirements.rb
@@ -22,7 +22,11 @@ module HasCostsAndRequirements
when "stat"
requirements.push "#{req[:value]} #{req[:gid]}"
when "equipment"
- requirements.push "equipped #{Item.find_by_gid(req[:gid]).name}"
+ if req[:tag]
+ requirements.push "equipped #{req[:tag]}"
+ else
+ requirements.push "equipped #{Item.find_by_gid(req[:gid]).name}"
+ end
when "hearth_amenity"
requirements.push "level #{req[:level]} #{HearthAmenity.find_by_gid(req[:gid]).name}"
else
diff --git a/data/activities.yml b/data/activities.yml
index ebad3e1..a5364a6 100644
--- a/data/activities.yml
+++ b/data/activities.yml
@@ -325,8 +325,10 @@ plant_mudtub_seed:
- type: "skill"
gid: "magiculture"
level: 1
+ - type: "equipment"
+ tag: "spade"
duration:
- base: 120
+ base: 60
scaling:
- type: "skill"
gid: "magiculture"
@@ -351,8 +353,10 @@ harvest_mudtub:
- type: "skill"
gid: "magiculture"
level: 1
+ - type: "equipment"
+ tag: "spade"
duration:
- base: 120
+ base: 60
scaling:
- type: "skill"
gid: "magiculture"
@@ -380,8 +384,10 @@ plant_midoras_seed:
- type: "skill"
gid: "magiculture"
level: 2
+ - type: "equipment"
+ tag: "spade"
duration:
- base: 130
+ base: 70
scaling:
- type: "skill"
gid: "magiculture"
@@ -406,8 +412,10 @@ harvest_midoras:
- type: "skill"
gid: "magiculture"
level: 2
+ - type: "equipment"
+ tag: "spade"
duration:
- base: 130
+ base: 70
scaling:
- type: "skill"
gid: "magiculture"
@@ -435,8 +443,10 @@ plant_templis_seed:
- type: "skill"
gid: "magiculture"
level: 4
+ - type: "equipment"
+ tag: "spade"
duration:
- base: 140
+ base: 80
scaling:
- type: "skill"
gid: "magiculture"
@@ -461,8 +471,10 @@ harvest_templis:
- type: "skill"
gid: "magiculture"
level: 4
+ - type: "equipment"
+ tag: "spade"
duration:
- base: 140
+ base: 80
scaling:
- type: "skill"
gid: "magiculture"
@@ -490,8 +502,10 @@ plant_enzon_seed:
- type: "skill"
gid: "magiculture"
level: 7
+ - type: "equipment"
+ tag: "spade"
duration:
- base: 150
+ base: 90
scaling:
- type: "skill"
gid: "magiculture"
@@ -516,8 +530,10 @@ harvest_enzon:
- type: "skill"
gid: "magiculture"
level: 7
+ - type: "equipment"
+ tag: "spade"
duration:
- base: 150
+ base: 90
scaling:
- type: "skill"
gid: "magiculture"
@@ -1979,8 +1995,10 @@ planequarry_floret_mines:
- type: "skill"
gid: "planequarry"
level: 1
+ - type: "equipment"
+ tag: "pickaxe"
duration:
- base: 130
+ base: 70
minimum: 35
scaling:
- type: "skill"
@@ -2047,8 +2065,10 @@ planequarry_deepshaft:
- type: "skill"
gid: "planequarry"
level: 10
+ - type: "equipment"
+ tag: "pickaxe"
duration:
- base: 160
+ base: 80
minimum: 35
scaling:
- type: "skill"
@@ -2120,8 +2140,10 @@ planequarry_brine_trench:
- type: "skill"
gid: "planequarry"
level: 1
+ - type: "equipment"
+ tag: "pickaxe"
duration:
- base: 60
+ base: 50
minimum: 25
scaling:
- type: "skill"
@@ -2207,8 +2229,10 @@ wealdreap_twil_woods:
- type: "skill"
gid: "wealdreap"
level: 1
+ - type: "equipment"
+ tag: "axe"
duration:
- base: 120
+ base: 60
minimum: 35
scaling:
- type: "skill"
@@ -2276,8 +2300,10 @@ wealdreap_twil_grove:
- type: "skill"
gid: "wealdreap"
level: 10
+ - type: "equipment"
+ tag: "axe"
duration:
- base: 150
+ base: 90
minimum: 35
scaling:
- type: "skill"
@@ -2347,7 +2373,7 @@ manatrawl_sor_well:
gid: "manatrawl"
level: 1
- type: "equipment"
- gid: "aethermesh"
+ tag: "aethermesh"
duration:
base: 60
minimum: 35
@@ -2391,7 +2417,7 @@ manatrawl_sor_well_depths:
gid: "manatrawl"
level: 7
- type: "equipment"
- gid: "aethermesh"
+ tag: "aethermesh"
duration:
base: 70
minimum: 35
@@ -2432,7 +2458,7 @@ synthsever_rusted_lockbox:
whatnot:
requirements:
- type: "equipment"
- gid: "iron_lockpicks"
+ gid: "lockpicks"
- type: "skill"
gid: "synthsever"
level: 1
@@ -2929,6 +2955,8 @@ havencast_stinging_rays:
- type: "stat"
gid: "mana"
value: 1
+ - type: "equipment"
+ tag: "focus"
results:
- type: "condition"
gid: "stinging_rays"
diff --git a/data/items.yml b/data/items.yml
index 428a8a5..ef0a103 100644
--- a/data/items.yml
+++ b/data/items.yml
@@ -720,6 +720,11 @@ iron_lockpicks:
whatnot:
tags:
- "tool"
+ - "lockpicks"
+ equip_effects:
+ - type: "stat_change"
+ gid: "synthsever_speed"
+ modifier: 10
equip_slots:
- "mainhand"
stone_pickaxe:
@@ -728,12 +733,13 @@ stone_pickaxe:
whatnot:
tags:
- "tool"
+ - "pickaxe"
equip_slots:
- "mainhand"
equip_effects:
- type: "stat_change"
gid: "planequarry_speed"
- modifier: 60
+ modifier: 2
- type: "stat_change"
gid: "accuracy"
modifier: 0
@@ -746,12 +752,13 @@ stone_axe:
whatnot:
tags:
- "tool"
+ - "axe"
equip_slots:
- "mainhand"
equip_effects:
- type: "stat_change"
gid: "wealdreap_speed"
- modifier: 60
+ modifier: 2
- type: "stat_change"
gid: "accuracy"
modifier: 0
@@ -764,12 +771,13 @@ stone_spade:
whatnot:
tags:
- "tool"
+ - "spade"
equip_slots:
- "mainhand"
equip_effects:
- type: "stat_change"
gid: "magiculture_speed"
- modifier: 60
+ modifier: 2
- type: "stat_change"
gid: "accuracy"
modifier: 0
@@ -782,12 +790,13 @@ iron_pickaxe:
whatnot:
tags:
- "tool"
+ - "pickaxe"
equip_slots:
- "mainhand"
equip_effects:
- type: "stat_change"
gid: "planequarry_speed"
- modifier: 80
+ modifier: 10
- type: "stat_change"
gid: "accuracy"
modifier: 1
@@ -800,12 +809,13 @@ iron_axe:
whatnot:
tags:
- "tool"
+ - "axe"
equip_slots:
- "mainhand"
equip_effects:
- type: "stat_change"
gid: "wealdreap_speed"
- modifier: 80
+ modifier: 10
- type: "stat_change"
gid: "accuracy"
modifier: 1
@@ -818,12 +828,13 @@ iron_spade:
whatnot:
tags:
- "tool"
+ - "spade"
equip_slots:
- "mainhand"
equip_effects:
- type: "stat_change"
gid: "magiculture_speed"
- modifier: 80
+ modifier: 10
- type: "stat_change"
gid: "accuracy"
modifier: 1
@@ -836,6 +847,7 @@ arcanite_pickaxe:
whatnot:
tags:
- "tool"
+ - "pickaxe"
equip_slots:
- "mainhand"
equip_requirements:
@@ -845,7 +857,7 @@ arcanite_pickaxe:
equip_effects:
- type: "stat_change"
gid: "planequarry_speed"
- modifier: 90
+ modifier: 20
- type: "stat_change"
gid: "accuracy"
modifier: 2
@@ -858,6 +870,7 @@ arcanite_axe:
whatnot:
tags:
- "tool"
+ - "axe"
equip_slots:
- "mainhand"
equip_requirements:
@@ -867,7 +880,7 @@ arcanite_axe:
equip_effects:
- type: "stat_change"
gid: "wealdreap_speed"
- modifier: 90
+ modifier: 20
- type: "stat_change"
gid: "accuracy"
modifier: 2
@@ -880,6 +893,7 @@ arcanite_spade:
whatnot:
tags:
- "tool"
+ - "spade"
equip_slots:
- "mainhand"
equip_requirements:
@@ -889,7 +903,7 @@ arcanite_spade:
equip_effects:
- type: "stat_change"
gid: "magiculture_speed"
- modifier: 90
+ modifier: 20
- type: "stat_change"
gid: "accuracy"
modifier: 2
@@ -902,6 +916,7 @@ aethermesh:
whatnot:
tags:
- "tool"
+ - "aethermesh"
equip_slots:
- "mainhand"
quarrying_draught: