From 9c015e16340c80a35aad1cde299218c650f5ba35 Mon Sep 17 00:00:00 2001 From: David Gay Date: Wed, 7 Jul 2021 21:10:29 -0400 Subject: Lusterlight brand omen, and make lusterlight tincture only craftable during firstlight --- CHANGELOG.md | 3 +- app/models/character.rb | 2 ++ app/models/concerns/has_costs_and_requirements.rb | 2 ++ data/activities.yml | 37 +++++++++++++++++++++++ data/items.yml | 13 ++++++++ 5 files changed, 56 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e28aaf3..a06acbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,9 +25,10 @@ All notable changes to this project will be documented in this file. If you already have a level 2 amenity, you are grandfathered in and can continue using it as normal. ### Items -- New items: pluma moss, laris strand, fine aethermesh, faint weaving haste +- New items: pluma moss, laris strand, fine aethermesh, faint weaving haste, lusterlight brand - Aethermesh now increases manatrawl speed by 2, and therefore can now break. - Apprentice wand now requires havencast level 5 to equip. +- Lusterlight tincture can now only be distilled during firstlight. ### Activities - Synthsever rusted lockbox base duration reduced from 180 to 120. diff --git a/app/models/character.rb b/app/models/character.rb index 655bb82..4237d50 100644 --- a/app/models/character.rb +++ b/app/models/character.rb @@ -306,6 +306,8 @@ class Character < ApplicationRecord return false unless self.skill_level(requirement[:gid]) >= requirement[:level] when "hearth_amenity" return false unless self.hearth.has_amenity?(requirement[:gid], requirement[:level]) + when "time_of_day" + return false unless requirement[:times].include? World.time_of_day.to_s else raise "Invalid requirement type string (#{requirement[:type]})" end diff --git a/app/models/concerns/has_costs_and_requirements.rb b/app/models/concerns/has_costs_and_requirements.rb index 9c4abf8..61ce461 100644 --- a/app/models/concerns/has_costs_and_requirements.rb +++ b/app/models/concerns/has_costs_and_requirements.rb @@ -29,6 +29,8 @@ module HasCostsAndRequirements end when "hearth_amenity" requirements.push "level #{req[:level]} #{HearthAmenity.find_by_gid(req[:gid]).name}" + when "time_of_day" + requirements.push "a certain time of day (#{req[:times].join(", ")})" else raise "Invalid requirement type string (#{req[:type]})" end diff --git a/data/activities.yml b/data/activities.yml index f141500..bafb674 100644 --- a/data/activities.yml +++ b/data/activities.yml @@ -1923,6 +1923,9 @@ craft_lusterlight_tincture: - type: "skill" gid: "fluxseethe" level: 7 + - type: "time_of_day" + times: + - "firstlight" duration: base: 180 minimum: 35 @@ -3170,6 +3173,40 @@ craft_faint_weaving_haste: xp: - gid: "omenbind" value: 12 +craft_lusterlight_brand: + name: "Bind lusterlight brand" + description: "Bind an omen of lusterlight." + whatnot: + requirements: + - type: "hearth_amenity" + gid: "binding_array" + level: 2 + - type: "skill" + gid: "omenbind" + level: 11 + duration: + base: 92 + minimum: 35 + scaling: + - type: "skill" + gid: "omenbind" + scale_value: 0.5 + - type: "stat" + gid: "omenbind_speed" + scale_value: 1 + cost: + - type: "item" + gid: "lusterlight_tincture" + quantity: 1 + - type: "item" + gid: "vestige" + quantity: 20 + results: + - type: "item" + gid: "lusterlight_brand" + xp: + - gid: "omenbind" + value: 18 craft_minor_mana: name: "Bind minor mana" description: "Bind an omen of minor mana." diff --git a/data/items.yml b/data/items.yml index 44da7b5..f54b0f6 100644 --- a/data/items.yml +++ b/data/items.yml @@ -1228,6 +1228,19 @@ faint_weaving_haste: - type: "stat_change" gid: "aetherweave_speed" modifier: 2 +lusterlight_brand: + name: "lusterlight brand" + description: "A radiant omen." + whatnot: + tags: + - "omen" + infix_skills: + - gid: "beastslay" + infix_effects: + - type: "damage" + gid: "radiant" + min: 1 + max: 3 simple_spellpage: name: "simple spellpage" description: "An old piece of parchment covered in magical script. Deciphering it can yield knowledge of a spell." -- cgit v1.2.3