diff options
-rw-r--r-- | CHANGELOG.md | 6 | ||||
-rw-r--r-- | app/models/character.rb | 10 | ||||
-rw-r--r-- | app/models/concerns/has_costs_and_requirements.rb | 6 | ||||
-rw-r--r-- | data/activities.yml | 60 | ||||
-rw-r--r-- | data/items.yml | 33 |
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: |