summaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
Diffstat (limited to 'example')
-rw-r--r--example/abilities.xml1
-rw-r--r--example/attributes.xml6
-rw-r--r--example/scripts/attributes.lua5
3 files changed, 11 insertions, 1 deletions
diff --git a/example/abilities.xml b/example/abilities.xml
index 6d1c3233..50a9ba08 100644
--- a/example/abilities.xml
+++ b/example/abilities.xml
@@ -7,6 +7,7 @@
rechargeable="true"
needed="100"
rechargeattribute="6"
+ cooldownattribute="20"
target="point"
/>
</ability-category>
diff --git a/example/attributes.xml b/example/attributes.xml
index e0e8829c..425dd961 100644
--- a/example/attributes.xml
+++ b/example/attributes.xml
@@ -172,5 +172,11 @@
player-info="max-weight" >
<modifier stacktype="stackable" modtype="additive" tag="cap1" effect="Capacity %+.2f" />
</attribute>
+ <attribute id="20" name="Global ability cooldown"
+ desc="The time in ticks until any ability can be used again after one was used"
+ modifiable="false"
+ scope="being"
+ minimum="0"
+ maximum="100" />
<!-- End of core-attributes definition -->
</attributes>
diff --git a/example/scripts/attributes.lua b/example/scripts/attributes.lua
index 2096da92..37d642d9 100644
--- a/example/scripts/attributes.lua
+++ b/example/scripts/attributes.lua
@@ -46,6 +46,9 @@ local function recalculate_base_attribute(being, attribute)
elseif attribute == ATTR_INV_CAPACITY then
-- Provisional
new_base = 2000 + being:modified_attribute(ATTR_STR) * 180
+ elseif attribute == ATTR_ABILITY_COOLDOWN then
+ -- Provisional
+ new_base = 100 - being:modified_attribute(ATTR_WIL)
end
if new_base ~= old_base then
@@ -66,7 +69,7 @@ local function update_derived_attributes(being, attribute)
elseif attribute == ATTR_INT then
-- unimplemented
elseif attribute == ATTR_WIL then
- -- unimplemented
+ recalculate_base_attribute(being, ATTR_ABILITY_COOLDOWN)
end
end