mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'snowram/consumables-buffs' into 'master'
Allows for consumables to have an optional array of buffs and effects See merge request veloren/veloren!1472
This commit is contained in:
commit
45e6fd5ad9
@ -1,9 +1,11 @@
|
||||
ItemDef(
|
||||
name: "Flask of Velorite Dust",
|
||||
description: "Increases Exp by 250\n\nTake with plenty of water\n\n<Right-Click to use>",
|
||||
description: "Increases Exp by 250\n\nTake with plenty of water",
|
||||
kind: Consumable(
|
||||
kind: "PotionExp",
|
||||
effect: Xp(250),
|
||||
effect: [
|
||||
Xp(250),
|
||||
]
|
||||
),
|
||||
quality: High,
|
||||
)
|
||||
|
@ -1,12 +1,21 @@
|
||||
ItemDef(
|
||||
name: "Potent Potion",
|
||||
description: "A potent healing potion.\n\nRestores 100 health on use.\n\n<Right-Click to use>",
|
||||
description: "A potent healing potion.\n\nRestores 100 health on use",
|
||||
kind: Consumable(
|
||||
kind: "Potion",
|
||||
effect: Health((
|
||||
amount: 1000,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 1000.0,
|
||||
duration: Some((
|
||||
secs: 1,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: High,
|
||||
)
|
||||
|
@ -1,9 +1,11 @@
|
||||
ItemDef(
|
||||
name: "Potion of Skill",
|
||||
description: "Provides 250 XP to the drinker\n\n<Right-Click to use>",
|
||||
description: "Provides 250 XP to the drinker",
|
||||
kind: Consumable(
|
||||
kind: "Potion",
|
||||
effect: Xp(250),
|
||||
),
|
||||
effect: [
|
||||
Xp(250),
|
||||
]
|
||||
),
|
||||
quality: High,
|
||||
)
|
||||
|
@ -3,10 +3,19 @@ ItemDef(
|
||||
description: "Restores 100 Health",
|
||||
kind: Consumable(
|
||||
kind: "PotionLarge",
|
||||
effect: Health((
|
||||
amount: 1000,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Potion,
|
||||
data: (
|
||||
strength: 1000.0,
|
||||
duration: Some((
|
||||
secs: 1,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Common,
|
||||
)
|
||||
|
@ -3,10 +3,19 @@ ItemDef(
|
||||
description: "Restores 70 Health",
|
||||
kind: Consumable(
|
||||
kind: "PotionMed",
|
||||
effect: Health((
|
||||
amount: 700,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Potion,
|
||||
data: (
|
||||
strength: 700.0,
|
||||
duration: Some((
|
||||
secs: 1,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Common,
|
||||
)
|
||||
|
@ -3,10 +3,19 @@ ItemDef(
|
||||
description: "Restores 50 Health",
|
||||
kind: Consumable(
|
||||
kind: "PotionMinor",
|
||||
effect: Health((
|
||||
amount: 500,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Potion,
|
||||
data: (
|
||||
strength: 500.0,
|
||||
duration: Some((
|
||||
secs: 1,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Common,
|
||||
)
|
||||
|
@ -1,12 +1,21 @@
|
||||
ItemDef(
|
||||
name: "Apple",
|
||||
description: "Restores 10 Health\n\nRed and juicy",
|
||||
description: "Restores 10 Health over 20 seconds\n\nRed and juicy",
|
||||
kind: Consumable(
|
||||
kind: "Apple",
|
||||
effect: Health((
|
||||
amount: 100,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 5.0,
|
||||
duration: Some((
|
||||
secs: 20,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Common,
|
||||
)
|
||||
|
@ -1,12 +1,21 @@
|
||||
ItemDef(
|
||||
name: "Mushroom Curry",
|
||||
description: "Restores 120 Health\n\nWho could say no to that?",
|
||||
description: "Restores 120 Health over 20 seconds\n\nWho could say no to that?",
|
||||
kind: Consumable(
|
||||
kind: "AppleShroomCurry",
|
||||
effect: Health((
|
||||
amount: 1200,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 60.0,
|
||||
duration: Some((
|
||||
secs: 20,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Moderate,
|
||||
)
|
||||
|
@ -1,12 +1,21 @@
|
||||
ItemDef(
|
||||
name: "Apple Stick",
|
||||
description: "Restores 25 Health\n\nThe stick makes it easier to carry!",
|
||||
description: "Restores 25 Health over 20 seconds\n\nThe stick makes it easier to carry!",
|
||||
kind: Consumable(
|
||||
kind: "AppleStick",
|
||||
effect: Health((
|
||||
amount: 250,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 12.5,
|
||||
duration: Some((
|
||||
secs: 20,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Common,
|
||||
)
|
||||
|
@ -1,12 +1,21 @@
|
||||
ItemDef(
|
||||
name: "Dwarven Cheese",
|
||||
description: "Restores 15 Health\n\nAromatic and nutritious",
|
||||
description: "Restores 15 Health over 20 seconds\n\nAromatic and nutritious",
|
||||
kind: Consumable(
|
||||
kind: "Cheese",
|
||||
effect: Health((
|
||||
amount: 150,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 7.5,
|
||||
duration: Some((
|
||||
secs: 20,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Common,
|
||||
)
|
||||
|
@ -1,12 +1,21 @@
|
||||
ItemDef(
|
||||
name: "Coconut",
|
||||
description: "Restores 20 health\n\nReliable source of water and fat",
|
||||
description: "Restores 20 health over 20 seconds\n\nReliable source of water and fat",
|
||||
kind: Consumable(
|
||||
kind: "Coconut",
|
||||
effect: Health((
|
||||
amount: 200,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 10.0,
|
||||
duration: Some((
|
||||
secs: 20,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Common,
|
||||
)
|
||||
|
@ -1,12 +1,21 @@
|
||||
ItemDef(
|
||||
name: "Mushroom",
|
||||
description: "Restores 5 Health\n\nHopefully this one is not poisonous",
|
||||
description: "Restores 5 Health over 10 seconds\n\nHopefully this one is not poisonous",
|
||||
kind: Consumable(
|
||||
kind: "Mushroom",
|
||||
effect: Health((
|
||||
amount: 50,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 5.0,
|
||||
duration: Some((
|
||||
secs: 10,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Common,
|
||||
)
|
||||
|
@ -1,12 +1,21 @@
|
||||
ItemDef(
|
||||
name: "Mushroom Stick",
|
||||
description: "Restores 20 Health\n\nRoasted mushrooms on a stick for easy carrying.",
|
||||
description: "Restores 20 Health over 20 seconds\n\nRoasted mushrooms on a stick for easy carrying",
|
||||
kind: Consumable(
|
||||
kind: "MushroomStick",
|
||||
effect: Health((
|
||||
amount: 200,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 10.0,
|
||||
duration: Some((
|
||||
secs: 20,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Common,
|
||||
)
|
||||
|
@ -1,12 +1,21 @@
|
||||
ItemDef(
|
||||
name: "Sunflower Ice Tea",
|
||||
description: "Restores 50 Health\n\nBrewed from freshly shelled sunflower seeds.",
|
||||
description: "Restores 50 Health over 20 seconds\n\nBrewed from freshly shelled sunflower seeds",
|
||||
kind: Consumable(
|
||||
kind: "SunflowerTea",
|
||||
effect: Health((
|
||||
amount: 500,
|
||||
cause: Item,
|
||||
)),
|
||||
effect: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 25.0,
|
||||
duration: Some((
|
||||
secs: 20,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Moderate,
|
||||
)
|
||||
|
@ -3,7 +3,9 @@ ItemDef(
|
||||
description: "Increases Exp by 20\n\nJust a slight touch makes you feel the knowledge of ancient times",
|
||||
kind: Consumable(
|
||||
kind: "Velorite",
|
||||
effect: Xp(20),
|
||||
),
|
||||
quality: High,
|
||||
effect: [
|
||||
Xp(20),
|
||||
]
|
||||
),
|
||||
quality: High,
|
||||
)
|
||||
|
@ -3,7 +3,9 @@ ItemDef(
|
||||
description: "Increases Exp by 10\n\nSmall runes sparkle on its surface",
|
||||
kind: Consumable(
|
||||
kind: "VeloriteFrag",
|
||||
effect: Xp(10),
|
||||
effect: [
|
||||
Xp(10),
|
||||
]
|
||||
),
|
||||
quality: Moderate,
|
||||
quality: Moderate,
|
||||
)
|
||||
|
@ -6,7 +6,7 @@
|
||||
// Ore and more
|
||||
"velorite_frag": (("common.items.ore.veloritefrag", 2), [("common.items.ore.velorite", 1), ("common.items.crafting_tools.craftsman_hammer", 0)]),
|
||||
//Potions
|
||||
"potion_s": (("common.items.consumable.potion_minor", 1), [("common.items.crafting_ing.empty_vial", 1), ("common.items.ore.veloritefrag", 2)]),
|
||||
"potion_s": (("common.items.consumable.potion_minor", 1), [("common.items.crafting_ing.empty_vial", 1), ("common.items.food.apple", 4), ("common.items.crafting_ing.honey", 1)]),
|
||||
"potion_m": (("common.items.consumable.potion_med", 1), [("common.items.consumable.potion_minor", 2), ("common.items.ore.veloritefrag", 4)]),
|
||||
"collar_basic": (("common.items.utility.collar", 1), [("common.items.crafting_ing.leather_scraps", 5), ("common.items.crafting_ing.shiny_gem", 1)]),
|
||||
"bomb_coconut": (("common.items.utility.bomb", 1), [("common.items.crafting_ing.stones", 10), ("common.items.food.coconut", 2), ("common.items.ore.veloritefrag", 2), ("common.items.crafting_tools.mortar_pestle", 0)]),
|
||||
|
@ -65,7 +65,7 @@
|
||||
],
|
||||
threshold: 0.5,
|
||||
),
|
||||
Glide: (
|
||||
Glide: (
|
||||
files: [
|
||||
// Event Missing or not implemented?
|
||||
],
|
||||
@ -383,6 +383,30 @@
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("PotionMed")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.liquid",
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("PotionLarge")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.liquid",
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("PotionExp")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.liquid",
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("SunflowerTea")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.liquid",
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("Apple")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.apple",
|
||||
@ -401,6 +425,42 @@
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("AppleShroomCurry")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.food",
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("AppleStick")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.food",
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("Coconut")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.food",
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("MushroomStick")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.food",
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("Velorite")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.food",
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Inventory(Consumed("VeloriteFrag")): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.inventory.consumable.food",
|
||||
],
|
||||
threshold: 0.3,
|
||||
),
|
||||
Explosion: (
|
||||
files: [
|
||||
// in code
|
||||
|
BIN
assets/voxygen/element/icons/de_buffs/buff_potion_0.png
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/element/icons/de_buffs/buff_potion_0.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/element/icons/de_buffs/buff_saturation_0.png
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/element/icons/de_buffs/buff_saturation_0.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
/// Translation document instructions
|
||||
///
|
||||
///
|
||||
/// In order to keep localization documents readible please follow the following
|
||||
/// rules:
|
||||
/// - separate the string map sections using a commentary describing the purpose
|
||||
@ -120,7 +120,7 @@ Dies ist eine frühe Alpha. Ihr werdet auf Bugs, unfertiges Gameplay und Mechani
|
||||
|
||||
Für konstruktives Feedback und Bug-Reports könnt Ihr uns via Reddit, Gitlab oder unseren Discord Server kontaktieren.
|
||||
|
||||
Veloren hat die GPL 3 Open-Source Lizenz. Das heißt Ihr könnt es kostenlos spielen,
|
||||
Veloren hat die GPL 3 Open-Source Lizenz. Das heißt Ihr könnt es kostenlos spielen,
|
||||
aber auch modifizieren (solange die Mods auch die selbe Lizenz tragen) und das Spiel an andere weiterschicken.
|
||||
|
||||
Veloren ist ein Non-Profit Community Projekt und jeder Mitarbeiter entwickelt es als Hobby in seiner Freizeit.
|
||||
@ -164,7 +164,7 @@ https://account.veloren.net.
|
||||
"hud.quests": "Quests",
|
||||
"hud.you_died": "Ihr seid gestorben.",
|
||||
"hud.waypoint_saved": "Wegpunkt gesichert",
|
||||
|
||||
|
||||
"hud.press_key_to_show_keybindings_fmt": "[{key}] Tastenbelegung",
|
||||
"hud.press_key_to_toggle_lantern_fmt": "[{key}] Laterne",
|
||||
"hud.press_key_to_show_debug_info_fmt": "Drückt {key} um die Debug-Info zu zeigen",
|
||||
@ -172,13 +172,13 @@ https://account.veloren.net.
|
||||
"hud.press_key_to_toggle_debug_info_fmt": "Drückt {key} um die Debug-Info zu zeigen",
|
||||
|
||||
// Chat outputs
|
||||
"hud.chat.online_msg": "[{name}] ist jetzt online.",
|
||||
"hud.chat.offline_msg": "{name} ist jetzt offline.",
|
||||
"hud.chat.loot_msg": "Ihr erhaltet [{item}]",
|
||||
"hud.chat.online_msg": "[{name}] ist jetzt online.",
|
||||
"hud.chat.offline_msg": "{name} ist jetzt offline.",
|
||||
"hud.chat.loot_msg": "Ihr erhaltet [{item}]",
|
||||
"hud.chat.loot_fail": "Euer Inventar ist voll!",
|
||||
"hud.chat.goodbye": "Verbindung getrennt.",
|
||||
"hud.chat.connection_lost": "Verbindung unterbrochen. Trenne Verbindung in {time} Sekunden.",
|
||||
|
||||
|
||||
"hud.chat.default_death_msg": "[{name}] ist gestorben",
|
||||
"hud.chat.environmental_kill_msg": "[{name}] starb durch {environment}",
|
||||
"hud.chat.fall_kill_msg": "[{name}] starb durch Fallschaden",
|
||||
@ -224,7 +224,7 @@ Um diese zu nutzen öffnet Euer Inventar mit 'B'.
|
||||
|
||||
Doppelklickt den Gegenstand in Eurer Tasche, um diesen zu nutzen.
|
||||
|
||||
Um Items wegzuwerfen klickt sie einmal im Inventar an
|
||||
Um Items wegzuwerfen klickt sie einmal im Inventar an
|
||||
|
||||
und klickt dann außerhalb der Tasche.
|
||||
|
||||
@ -246,11 +246,11 @@ Viel Spaß in der Welt von Veloren, Abenteurer!"#,
|
||||
um unsere Dörfer herum aufgetaucht!
|
||||
|
||||
|
||||
Versammelt einige Kämpfer, sucht etwas
|
||||
Nahrung und besiegt ihre abscheulichen
|
||||
Versammelt einige Kämpfer, sucht etwas
|
||||
Nahrung und besiegt ihre abscheulichen
|
||||
Anführer und Akolyten.
|
||||
|
||||
Vielleicht könnt Ihr sogar einen ihrer
|
||||
Vielleicht könnt Ihr sogar einen ihrer
|
||||
magischen Gegenstände ergattern?"#,
|
||||
|
||||
// Inventory
|
||||
@ -273,7 +273,7 @@ magischen Gegenstände ergattern?"#,
|
||||
"hud.bag.legs": "Beine",
|
||||
"hud.bag.feet": "Füße",
|
||||
"hud.bag.mainhand": "Haupthand",
|
||||
"hud.bag.offhand": "Nebenhand",
|
||||
"hud.bag.offhand": "Nebenhand",
|
||||
|
||||
// Map and Questlog
|
||||
"hud.map.map_title": "Karte",
|
||||
@ -292,7 +292,7 @@ magischen Gegenstände ergattern?"#,
|
||||
"hud.settings.custom_scaling": "Freie Skalierung",
|
||||
"hud.settings.crosshair": "Fadenkreuz",
|
||||
"hud.settings.transparency": "Transparenz",
|
||||
"hud.settings.hotbar": "Hotbar",
|
||||
"hud.settings.hotbar": "Hotbar",
|
||||
"hud.settings.toggle_shortcuts": "Tastenbelegung",
|
||||
"hud.settings.toggle_bar_experience": "Erfahrungsleiste",
|
||||
"hud.settings.scrolling_combat_text": "Aufsteigende Kampfwerte",
|
||||
@ -300,7 +300,7 @@ magischen Gegenstände ergattern?"#,
|
||||
"hud.settings.cumulated_damage": "Addierter Schaden",
|
||||
"hud.settings.incoming_damage": "Erlittener Schaden",
|
||||
"hud.settings.cumulated_incoming_damage": "Addierter erlittener Schaden",
|
||||
"hud.settings.speech_bubble": "Sprechblase",
|
||||
"hud.settings.speech_bubble": "Sprechblase",
|
||||
"hud.settings.speech_bubble_dark_mode": "Dunkle Sprechblasen",
|
||||
"hud.settings.speech_bubble_icon": "Sprechblasen-Symbole",
|
||||
"hud.settings.energybar_numbers": "Zahlen auf Ressourcenanzeige",
|
||||
@ -311,10 +311,10 @@ magischen Gegenstände ergattern?"#,
|
||||
"hud.settings.chat_character_name": "Characternamen im Chat",
|
||||
"hud.settings.buffs_mmap": "Zeige Buffs an der Mini-Map",
|
||||
"hud.settings.buffs_skillbar": "Zeige Buffs an der Fähigkeiten Leiste",
|
||||
"hud.settings.cloud_rendering_mode.low": "Niedrig",
|
||||
"hud.settings.cloud_rendering_mode.low": "Niedrig",
|
||||
"hud.settings.cloud_rendering_mode.medium": "Mittel",
|
||||
"hud.settings.cloud_rendering_mode.minimal": "Minimal",
|
||||
"hud.settings.cloud_rendering_mode.high": "Hoch",
|
||||
"hud.settings.cloud_rendering_mode.minimal": "Minimal",
|
||||
"hud.settings.cloud_rendering_mode.high": "Hoch",
|
||||
|
||||
"hud.settings.pan_sensitivity": "Schwenk-Sensibilität",
|
||||
"hud.settings.zoom_sensitivity": "Zoom-Sensibilität",
|
||||
@ -341,7 +341,7 @@ magischen Gegenstände ergattern?"#,
|
||||
"hud.settings.resolution": "Auflösung",
|
||||
"hud.settings.bit_depth": "Bittiefe",
|
||||
"hud.settings.refresh_rate": "Bildwiederholrate",
|
||||
"hud.settings.fullscreen": "Vollbild",
|
||||
"hud.settings.fullscreen": "Vollbild",
|
||||
"hud.settings.fullscreen_mode": "Vollbild-Modus",
|
||||
"hud.settings.fullscreen_mode.exclusive": "Exklusiv",
|
||||
"hud.settings.fullscreen_mode.borderless": "Rahmenlos",
|
||||
@ -374,7 +374,7 @@ magischen Gegenstände ergattern?"#,
|
||||
"hud.social.account": "Account",
|
||||
|
||||
"hud.spell": "Zauber",
|
||||
|
||||
|
||||
"hud.social.name" : "Name",
|
||||
"hud.social.level" : "Lvl",
|
||||
"hud.social.zone" : "Gebiet",
|
||||
@ -401,13 +401,13 @@ magischen Gegenstände ergattern?"#,
|
||||
"hud.free_look_indicator": "Freie Sicht aktiv",
|
||||
"hud.auto_walk_indicator": "Automatisches Laufen aktiv",
|
||||
|
||||
|
||||
|
||||
/// End HUD section
|
||||
/// Start GameInput section
|
||||
|
||||
"gameinput.primary": "Linker mittlerer Slot",
|
||||
"gameinput.secondary": "Rechter mittlerer Slot",
|
||||
"gameinput.slot1": "Hotbar Slot 1",
|
||||
"gameinput.slot1": "Hotbar Slot 1",
|
||||
"gameinput.slot2": "Hotbar Slot 2",
|
||||
"gameinput.slot3": "Hotbar Slot 3",
|
||||
"gameinput.slot4": "Hotbar Slot 4",
|
||||
@ -450,7 +450,7 @@ magischen Gegenstände ergattern?"#,
|
||||
"gameinput.charge": "Anstürmen",
|
||||
"gameinput.togglewield": "Waffe ziehen/wegstecken",
|
||||
"gameinput.interact": "Interagieren",
|
||||
"gameinput.freelook": "Freie Sicht",
|
||||
"gameinput.freelook": "Freie Sicht",
|
||||
"gameinput.autowalk": "Automatisch Laufen",
|
||||
"gameinput.dance": "Tanzen",
|
||||
"gameinput.declinegroupinvite": "Ablehnen",
|
||||
@ -501,7 +501,7 @@ Willenskraft
|
||||
|
||||
|
||||
/// Start character window section
|
||||
|
||||
|
||||
|
||||
/// Start Escape Menu Section
|
||||
"esc_menu.logout": "Ausloggen",
|
||||
@ -510,14 +510,14 @@ Willenskraft
|
||||
|
||||
/// Buffs and Debuffs
|
||||
"buff.remove": "Klicken zum Entfernen",
|
||||
"buff.title.missing": "Fehlender Titel",
|
||||
"buff.desc.missing": "Fehlende Beschreibung",
|
||||
"buff.title.missing": "Fehlender Titel",
|
||||
"buff.desc.missing": "Fehlende Beschreibung",
|
||||
// Buffs
|
||||
"buff.title.heal_test": "HoT Buff Test",
|
||||
"buff.desc.heal_test": "HoT Buff Test",
|
||||
// Debuffs
|
||||
"debuff.title.bleed_test": "Blutung",
|
||||
"debuff.desc.bleed_test": "Fügt regelmäßig Schaden zu.",
|
||||
"buff.title.heal": "HoT Buff Test",
|
||||
"buff.desc.heal": "HoT Buff Test",
|
||||
// Debuffs
|
||||
"debuff.title.bleed": "Blutung",
|
||||
"debuff.desc.bleed": "Fügt regelmäßig Schaden zu.",
|
||||
},
|
||||
|
||||
vector_map: {
|
||||
@ -530,17 +530,17 @@ Willenskraft
|
||||
"NPCs mit demselben Level können unterschiedlich schwierig zu besiegen sein.",
|
||||
"Behaltet den Boden um euch im Blick! Dort gibt es Nahrung, Kisten und Anderes zu finden.",
|
||||
"Ist Euer Inventar voll mit Nahrung? Wertet es einfach durch Crafting auf!",
|
||||
"Ihr sucht nach einem Abenteuer? Dungeons sind mit braunen Markierungen auf der Karte vermerkt!",
|
||||
"Ihr sucht nach einem Abenteuer? Dungeons sind mit braunen Markierungen auf der Karte vermerkt!",
|
||||
"Vergesst nicht Eure Grafikeinstellungen anzupassen! Mit 'N' kommt ihr in die Einstellungen.",
|
||||
"Zusammen kämpfen macht mehr Spaß! Drückt 'O' um Eure Mitspieler anzuzeigen.",
|
||||
"Zusammen kämpfen macht mehr Spaß! Drückt 'O' um Eure Mitspieler anzuzeigen.",
|
||||
"Ein NPC mit einem Schädel unter seiner Lebensanzeige ist deutlich stärker als Ihr.",
|
||||
"Drückt 'J' um zu tanzen. Yeah!",
|
||||
"Verwendet 'L-Shift' um mit Eurem Gleiter den Himmel zu erobern!",
|
||||
"Veloren befindet sich noch in der Pre-Alpha Phase. Wir tun unser Bestes, um das Spielgefühl jeden Tag zu verbessern!",
|
||||
"Ihr wünscht, Euch mit uns auszutauschen oder wollt unserem Entwickler-Team beitreten? Kommt doch einfach auf unseren Discord-Server!",
|
||||
],
|
||||
"Ihr wünscht, Euch mit uns auszutauschen oder wollt unserem Entwickler-Team beitreten? Kommt doch einfach auf unseren Discord-Server!",
|
||||
],
|
||||
"npc.speech.villager_under_attack": [
|
||||
"Hilfe, ich werde angegriffen!",
|
||||
"Hilfe, ich werde angegriffen!",
|
||||
],
|
||||
}
|
||||
)
|
||||
|
@ -184,7 +184,7 @@ https://account.veloren.net."#,
|
||||
"hud.chat.pvp_ranged_kill_msg": "[{attacker}] shot [{victim}]",
|
||||
"hud.chat.pvp_explosion_kill_msg": "[{attacker}] blew up [{victim}]",
|
||||
"hud.chat.pvp_energy_kill_msg": "[{attacker}] killed [{victim}] with magic",
|
||||
"hud.chat.pvp_other_kill_msg": "[{attacker}] killed [{victim}]",
|
||||
"hud.chat.pvp_buff_kill_msg": "[{attacker}] killed [{victim}]",
|
||||
|
||||
|
||||
"hud.chat.npc_melee_kill_msg": "{attacker} killed [{victim}]",
|
||||
@ -520,11 +520,15 @@ Protection
|
||||
"buff.title.missing": "Missing Title",
|
||||
"buff.desc.missing": "Missing Description",
|
||||
// Buffs
|
||||
"buff.title.heal_test": "Heal Test",
|
||||
"buff.desc.heal_test": "This is a test buff to test healing.",
|
||||
"buff.title.heal": "Heal",
|
||||
"buff.desc.heal": "Gain health over time.",
|
||||
"buff.title.potion": "Potion",
|
||||
"buff.desc.potion": "Drinking...",
|
||||
"buff.title.saturation": "Saturation",
|
||||
"buff.desc.saturation": "Gain health over time from consumables.",
|
||||
// Debuffs
|
||||
"debuff.title.bleed_test": "Bleeding",
|
||||
"debuff.desc.bleed_test": "Inflicts regular damage.",
|
||||
"debuff.title.bleed": "Bleeding",
|
||||
"debuff.desc.bleed": "Inflicts regular damage.",
|
||||
},
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/// Translation document instructions
|
||||
///
|
||||
///
|
||||
/// In order to keep localization documents readible please follow the following
|
||||
/// rules:
|
||||
/// - separate the string map sections using a commentary describing the purpose
|
||||
@ -7,7 +7,7 @@
|
||||
/// - prepend multi-line strings with a commentary
|
||||
/// - append one blank lines after a multi-line strings and two after sections
|
||||
///
|
||||
/// To add a new language in Veloren, just write an additional `.ron` file in
|
||||
/// To add a new language in Veloren, just write an additional `.ron` file in
|
||||
/// `assets/voxygen/i18n` and that's it!
|
||||
///
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
@ -164,7 +164,7 @@ bir hesap oluşturabilirsin."#,
|
||||
"hud.quests": "Görevler",
|
||||
"hud.you_died": "Öldün",
|
||||
"hud.waypoint_saved": "Yol noktası kaydedildi",
|
||||
|
||||
|
||||
"hud.press_key_to_show_keybindings_fmt": "Kontrolleri göstermek için {key}'e bas",
|
||||
"hud.press_key_to_toggle_lantern_fmt": "Fenerini yakıp söndürmek için [{key}]'e bas",
|
||||
"hud.press_key_to_show_debug_info_fmt": "Hata ayıklama bilgilerini göstermek için {key}'e bas",
|
||||
@ -203,7 +203,7 @@ bir hesap oluşturabilirsin."#,
|
||||
"hud.sct.block": "BLOKLANDI",
|
||||
|
||||
// Respawn message
|
||||
"hud.press_key_to_respawn": r#"Ziyaret ettiğin en son kamp ateşinde yeniden doğmak için {key}'e bas."#,
|
||||
"hud.press_key_to_respawn": r#"Ziyaret ettiğin en son kamp ateşinde yeniden doğmak için {key}'e bas."#,
|
||||
|
||||
// Welcome message
|
||||
"hud.welcome": r#"Veloren Alfa sürümüne hoşgeldin!,
|
||||
@ -250,7 +250,7 @@ dolu zindanlar belirdi.
|
||||
Birkaç yoldaş bul, yiyeceğini hazırla
|
||||
ve kült lideri ile onun yardımcılarını alt et.
|
||||
|
||||
Kim bilir? Belki onların tılsımlı
|
||||
Kim bilir? Belki onların tılsımlı
|
||||
eşyalarını bile ele geçirebilirsin!"#,
|
||||
|
||||
|
||||
@ -275,7 +275,7 @@ eşyalarını bile ele geçirebilirsin!"#,
|
||||
"hud.bag.feet": "Ayaklar",
|
||||
"hud.bag.mainhand": "Birincil",
|
||||
"hud.bag.offhand": "İkincil",
|
||||
|
||||
|
||||
// Map and Questlog
|
||||
"hud.map.map_title": "Harita",
|
||||
"hud.map.qlog_title": "Görevler",
|
||||
@ -462,7 +462,7 @@ edince kapat"#,
|
||||
"gameinput.sneak": "Eğil",
|
||||
"gameinput.swimdown": "Aşağı Dal",
|
||||
"gameinput.swimup": "Yüzeye çık",
|
||||
|
||||
|
||||
/// End GameInput section
|
||||
|
||||
|
||||
@ -508,7 +508,7 @@ Koruma
|
||||
|
||||
|
||||
/// Start character window section
|
||||
|
||||
|
||||
|
||||
/// Start Escape Menu Section
|
||||
"esc_menu.logout": "Çıkış yap",
|
||||
@ -520,11 +520,11 @@ Koruma
|
||||
"buff.title.missing": "İsim Yok",
|
||||
"buff.desc.missing": "Açıklama Yok",
|
||||
// Buffs
|
||||
"buff.title.heal_test": "İyileştirme Testi",
|
||||
"buff.desc.heal_test": "Bu etki iyileştirmeyi test etmek için.",
|
||||
"buff.title.heal": "İyileştirme Testi",
|
||||
"buff.desc.heal": "Bu etki iyileştirmeyi test etmek için.",
|
||||
// Debuffs
|
||||
"debuff.title.bleed_test": "Kanama",
|
||||
"debuff.desc.bleed_test": "Normal hasar verir.",
|
||||
"debuff.title.bleed": "Kanama",
|
||||
"debuff.desc.bleed": "Normal hasar verir.",
|
||||
},
|
||||
|
||||
vector_map: {
|
||||
|
@ -1983,4 +1983,26 @@ Beehive: Some((
|
||||
],
|
||||
wind_sway: 0.1,
|
||||
)),
|
||||
// Empty Flask
|
||||
VialEmpty: Some((
|
||||
variations: [
|
||||
(
|
||||
model: "voxygen.voxel.object.potion_empty",
|
||||
offset: (-5.0, -5.0, 0.0),
|
||||
lod_axes: (1.0, 1.0, 1.0),
|
||||
),
|
||||
],
|
||||
wind_sway: 0.0,
|
||||
)),
|
||||
// Minor Potion
|
||||
PotionMinor: Some((
|
||||
variations: [
|
||||
(
|
||||
model: "voxygen.voxel.object.potion_red",
|
||||
offset: (-5.0, -5.0, 0.0),
|
||||
lod_axes: (1.0, 1.0, 1.0),
|
||||
),
|
||||
],
|
||||
wind_sway: 0.0,
|
||||
)),
|
||||
)
|
||||
|
@ -276,7 +276,7 @@ impl Body {
|
||||
_ => 1000,
|
||||
},
|
||||
Body::Object(_) => 10000,
|
||||
Body::Golem(_) => 2560,
|
||||
Body::Golem(_) => 2740,
|
||||
Body::Theropod(_) => 50,
|
||||
Body::QuadrupedLow(quadruped_low) => match quadruped_low.species {
|
||||
quadruped_low::Species::Crocodile => 600,
|
||||
|
@ -10,11 +10,15 @@ use std::{cmp::Ordering, collections::HashMap, time::Duration};
|
||||
pub enum BuffKind {
|
||||
/// Restores health/time for some period
|
||||
Regeneration,
|
||||
/// Restores health/time for some period for consumables
|
||||
Saturation,
|
||||
/// Lowers health over time for some duration
|
||||
Bleeding,
|
||||
/// Lower a creature's max health
|
||||
/// Currently placeholder buff to show other stuff is possible
|
||||
Cursed,
|
||||
// Applied when drinking a potion
|
||||
Potion,
|
||||
}
|
||||
|
||||
impl BuffKind {
|
||||
@ -22,14 +26,16 @@ impl BuffKind {
|
||||
pub fn is_buff(self) -> bool {
|
||||
match self {
|
||||
BuffKind::Regeneration { .. } => true,
|
||||
BuffKind::Saturation { .. } => true,
|
||||
BuffKind::Bleeding { .. } => false,
|
||||
BuffKind::Cursed { .. } => false,
|
||||
BuffKind::Potion { .. } => true,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Struct used to store data relevant to a buff
|
||||
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
|
||||
pub struct BuffData {
|
||||
pub strength: f32,
|
||||
pub duration: Option<Duration>,
|
||||
@ -97,7 +103,7 @@ pub enum BuffChange {
|
||||
RemoveById(Vec<BuffId>),
|
||||
/// Removes buffs of these categories (first vec is of categories of which
|
||||
/// all are required, second vec is of categories of which at least one is
|
||||
/// required, third vec is of categories that will not be removed)
|
||||
/// required, third vec is of categories that will not be removed)
|
||||
RemoveByCategory {
|
||||
all_required: Vec<BuffCategory>,
|
||||
any_required: Vec<BuffCategory>,
|
||||
@ -121,7 +127,7 @@ impl Buff {
|
||||
}],
|
||||
data.duration,
|
||||
),
|
||||
BuffKind::Regeneration => (
|
||||
BuffKind::Regeneration | BuffKind::Saturation | BuffKind::Potion => (
|
||||
vec![BuffEffect::HealthChangeOverTime {
|
||||
rate: data.strength,
|
||||
accumulated: 0.0,
|
||||
|
@ -83,7 +83,7 @@ pub enum ItemKind {
|
||||
Glider(Glider),
|
||||
Consumable {
|
||||
kind: String,
|
||||
effect: Effect,
|
||||
effect: Vec<Effect>,
|
||||
},
|
||||
Throwable {
|
||||
kind: Throwable,
|
||||
@ -337,6 +337,8 @@ impl Item {
|
||||
SpriteKind::Stones => "common.items.crafting_ing.stones",
|
||||
SpriteKind::Twigs => "common.items.crafting_ing.twigs",
|
||||
SpriteKind::ShinyGem => "common.items.crafting_ing.shiny_gem",
|
||||
SpriteKind::VialEmpty => "common.items.crafting_ing.empty_vial",
|
||||
SpriteKind::PotionMinor => "common.items.consumable.potion_minor",
|
||||
_ => return None,
|
||||
}))
|
||||
}
|
||||
|
@ -260,8 +260,10 @@ impl Default for Inventory {
|
||||
slots: vec![None; 36],
|
||||
amount: 0,
|
||||
};
|
||||
inventory.push(Item::new_from_asset_expect(
|
||||
"common.items.consumable.potion_minor",
|
||||
));
|
||||
inventory.push(Item::new_from_asset_expect("common.items.food.cheese"));
|
||||
inventory.push(Item::new_from_asset_expect("common.items.food.apple"));
|
||||
inventory
|
||||
}
|
||||
}
|
||||
|
@ -2,11 +2,20 @@ use crate::{combat, comp};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
/// An effect that may be applied to an entity
|
||||
#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||
pub enum Effect {
|
||||
Health(comp::HealthChange),
|
||||
Xp(i64),
|
||||
Damage(combat::Damage),
|
||||
Buff(BuffEffect),
|
||||
}
|
||||
|
||||
/// A buff that may be applied to an entity
|
||||
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||
pub struct BuffEffect {
|
||||
pub kind: comp::BuffKind,
|
||||
pub data: comp::BuffData,
|
||||
pub cat_ids: Vec<comp::BuffCategory>,
|
||||
}
|
||||
|
||||
impl Effect {
|
||||
@ -15,6 +24,7 @@ impl Effect {
|
||||
Effect::Health(c) => format!("{:+} health", c.amount),
|
||||
Effect::Xp(n) => format!("{:+} exp", n),
|
||||
Effect::Damage(d) => format!("{:+}", d.value),
|
||||
Effect::Buff(e) => format!("{:?} buff", e),
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,6 +39,9 @@ impl Effect {
|
||||
Effect::Damage(damage) => {
|
||||
damage.interpolate_damage(modifier, 0.0);
|
||||
},
|
||||
Effect::Buff(effect) => {
|
||||
effect.data.strength *= modifier;
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -102,6 +102,8 @@ make_case_elim!(
|
||||
Reed = 0x4C,
|
||||
Beehive = 0x4D,
|
||||
LargeCactus = 0x4E,
|
||||
VialEmpty = 0x4F,
|
||||
PotionMinor = 0x50,
|
||||
}
|
||||
);
|
||||
|
||||
@ -184,6 +186,8 @@ impl SpriteKind {
|
||||
SpriteKind::ShinyGem => true,
|
||||
SpriteKind::Crate => true,
|
||||
SpriteKind::Beehive => true,
|
||||
SpriteKind::VialEmpty => true,
|
||||
SpriteKind::PotionMinor => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
@ -221,6 +225,8 @@ impl SpriteKind {
|
||||
| SpriteKind::DropGateBottom
|
||||
| SpriteKind::Door
|
||||
| SpriteKind::Beehive
|
||||
| SpriteKind::PotionMinor
|
||||
| SpriteKind::VialEmpty
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -649,7 +649,7 @@ pub fn handle_explosion(
|
||||
|
||||
if is_alive {
|
||||
effect.modify_strength(strength);
|
||||
server.state().apply_effect(entity_b, effect, owner);
|
||||
server.state().apply_effect(entity_b, effect.clone(), owner);
|
||||
// Apply energy change
|
||||
if let Some(owner) = owner_entity {
|
||||
if let Some(energy) =
|
||||
|
@ -211,7 +211,7 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv
|
||||
} else if let Some(item) = inventory.take(slot) {
|
||||
match item.kind() {
|
||||
ItemKind::Consumable { kind, effect, .. } => {
|
||||
maybe_effect = Some(*effect);
|
||||
maybe_effect = Some(effect.clone());
|
||||
Some(comp::InventoryUpdateEvent::Consumed(kind.clone()))
|
||||
},
|
||||
ItemKind::Throwable { kind, .. } => {
|
||||
@ -348,8 +348,10 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv
|
||||
};
|
||||
|
||||
drop(inventories);
|
||||
if let Some(effect) = maybe_effect {
|
||||
state.apply_effect(entity, effect, None);
|
||||
if let Some(effects) = maybe_effect {
|
||||
for effect in effects {
|
||||
state.apply_effect(entity, effect, None);
|
||||
}
|
||||
}
|
||||
if let Some(event) = event {
|
||||
state.write_component(entity, comp::InventoryUpdate::new(event));
|
||||
|
@ -71,8 +71,8 @@ pub trait StateExt {
|
||||
}
|
||||
|
||||
impl StateExt for State {
|
||||
fn apply_effect(&self, entity: EcsEntity, effect: Effect, source: Option<Uid>) {
|
||||
match effect {
|
||||
fn apply_effect(&self, entity: EcsEntity, effects: Effect, source: Option<Uid>) {
|
||||
match effects {
|
||||
Effect::Health(change) => {
|
||||
self.ecs()
|
||||
.write_storage::<comp::Health>()
|
||||
@ -93,6 +93,19 @@ impl StateExt for State {
|
||||
.get_mut(entity)
|
||||
.map(|health| health.change_by(change));
|
||||
},
|
||||
Effect::Buff(buff) => {
|
||||
self.ecs()
|
||||
.write_storage::<comp::Buffs>()
|
||||
.get_mut(entity)
|
||||
.map(|buffs| {
|
||||
buffs.insert(comp::Buff::new(
|
||||
buff.kind,
|
||||
buff.data,
|
||||
buff.cat_ids,
|
||||
comp::BuffSource::Item,
|
||||
))
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -138,7 +138,7 @@ impl<'a> System<'a> for Sys {
|
||||
body,
|
||||
);
|
||||
}
|
||||
stats.level.set_level(rand::thread_rng().gen_range(30, 35));
|
||||
stats.level.set_level(rand::thread_rng().gen_range(25, 30));
|
||||
scale = 2.0 + rand::random::<f32>();
|
||||
}
|
||||
|
||||
|
@ -182,6 +182,8 @@ impl<'a> Widget for BuffsBar<'a> {
|
||||
}) as u32; // Percentage to determine which frame of the timer overlay is displayed
|
||||
let buff_img = match buff.kind {
|
||||
BuffKind::Regeneration { .. } => self.imgs.buff_plus_0,
|
||||
BuffKind::Saturation { .. } => self.imgs.buff_saturation_0,
|
||||
BuffKind::Potion { .. } => self.imgs.buff_potion_0,
|
||||
_ => self.imgs.missing_icon,
|
||||
};
|
||||
let buff_widget = Image::new(buff_img).w_h(20.0, 20.0);
|
||||
@ -204,9 +206,11 @@ impl<'a> Widget for BuffsBar<'a> {
|
||||
.set(id, ui);
|
||||
// Create Buff tooltip
|
||||
let title = match buff.kind {
|
||||
BuffKind::Regeneration { .. } => {
|
||||
localized_strings.get("buff.title.heal_test")
|
||||
BuffKind::Regeneration { .. } => localized_strings.get("buff.title.heal"),
|
||||
BuffKind::Saturation { .. } => {
|
||||
localized_strings.get("buff.title.saturation")
|
||||
},
|
||||
BuffKind::Potion { .. } => localized_strings.get("buff.title.potion"),
|
||||
_ => localized_strings.get("buff.title.missing"),
|
||||
};
|
||||
let remaining_time = if current_duration.is_none() {
|
||||
@ -216,9 +220,11 @@ impl<'a> Widget for BuffsBar<'a> {
|
||||
};
|
||||
let click_to_remove = format!("<{}>", &localized_strings.get("buff.remove"));
|
||||
let desc_txt = match buff.kind {
|
||||
BuffKind::Regeneration { .. } => {
|
||||
localized_strings.get("buff.desc.heal_test")
|
||||
BuffKind::Regeneration { .. } => localized_strings.get("buff.desc.heal"),
|
||||
BuffKind::Saturation { .. } => {
|
||||
localized_strings.get("buff.desc.saturation")
|
||||
},
|
||||
BuffKind::Potion { .. } => localized_strings.get("buff.desc.potion"),
|
||||
_ => localized_strings.get("buff.desc.missing"),
|
||||
};
|
||||
let desc = format!("{}\n\n{}\n\n{}", desc_txt, remaining_time, click_to_remove);
|
||||
@ -296,9 +302,7 @@ impl<'a> Widget for BuffsBar<'a> {
|
||||
.set(id, ui);
|
||||
// Create Debuff tooltip
|
||||
let title = match debuff.kind {
|
||||
BuffKind::Bleeding { .. } => {
|
||||
localized_strings.get("debuff.title.bleed_test")
|
||||
},
|
||||
BuffKind::Bleeding { .. } => localized_strings.get("debuff.title.bleed"),
|
||||
_ => localized_strings.get("buff.title.missing"),
|
||||
};
|
||||
let remaining_time = if current_duration.is_none() {
|
||||
@ -307,9 +311,7 @@ impl<'a> Widget for BuffsBar<'a> {
|
||||
format!("Remaining: {:.0}s", current_duration.unwrap().as_secs_f32())
|
||||
};
|
||||
let desc_txt = match debuff.kind {
|
||||
BuffKind::Bleeding { .. } => {
|
||||
localized_strings.get("debuff.desc.bleed_test")
|
||||
},
|
||||
BuffKind::Bleeding { .. } => localized_strings.get("debuff.desc.bleed"),
|
||||
_ => localized_strings.get("debuff.desc.missing"),
|
||||
};
|
||||
let desc = format!("{}\n\n{}", desc_txt, remaining_time);
|
||||
@ -379,8 +381,10 @@ impl<'a> Widget for BuffsBar<'a> {
|
||||
}) as u32;
|
||||
let buff_img = match buff.kind {
|
||||
BuffKind::Regeneration { .. } => self.imgs.buff_plus_0,
|
||||
BuffKind::Saturation { .. } => self.imgs.buff_saturation_0,
|
||||
BuffKind::Bleeding { .. } => self.imgs.debuff_bleed_0,
|
||||
BuffKind::Cursed { .. } => self.imgs.debuff_skull_0,
|
||||
BuffKind::Potion { .. } => self.imgs.buff_potion_0,
|
||||
};
|
||||
let buff_widget = Image::new(buff_img).w_h(40.0, 40.0);
|
||||
// Sort buffs into rows of 6 slots
|
||||
@ -402,12 +406,12 @@ impl<'a> Widget for BuffsBar<'a> {
|
||||
.set(id, ui);
|
||||
// Create Buff tooltip
|
||||
let title = match buff.kind {
|
||||
BuffKind::Regeneration { .. } => {
|
||||
localized_strings.get("buff.title.heal_test")
|
||||
},
|
||||
BuffKind::Bleeding { .. } => {
|
||||
localized_strings.get("debuff.title.bleed_test")
|
||||
BuffKind::Regeneration { .. } => localized_strings.get("buff.title.heal"),
|
||||
BuffKind::Saturation { .. } => {
|
||||
localized_strings.get("buff.title.saturation")
|
||||
},
|
||||
BuffKind::Potion { .. } => localized_strings.get("buff.title.potion"),
|
||||
BuffKind::Bleeding { .. } => localized_strings.get("debuff.title.bleed"),
|
||||
_ => localized_strings.get("buff.title.missing"),
|
||||
};
|
||||
let remaining_time = if current_duration.is_none() {
|
||||
@ -417,12 +421,12 @@ impl<'a> Widget for BuffsBar<'a> {
|
||||
};
|
||||
let click_to_remove = format!("<{}>", &localized_strings.get("buff.remove"));
|
||||
let desc_txt = match buff.kind {
|
||||
BuffKind::Regeneration { .. } => {
|
||||
localized_strings.get("buff.desc.heal_test")
|
||||
},
|
||||
BuffKind::Bleeding { .. } => {
|
||||
localized_strings.get("debuff.desc.bleed_test")
|
||||
BuffKind::Regeneration { .. } => localized_strings.get("buff.desc.heal"),
|
||||
BuffKind::Saturation { .. } => {
|
||||
localized_strings.get("buff.desc.saturation")
|
||||
},
|
||||
BuffKind::Potion { .. } => localized_strings.get("buff.desc.potion"),
|
||||
BuffKind::Bleeding { .. } => localized_strings.get("debuff.desc.bleed"),
|
||||
_ => localized_strings.get("buff.desc.missing"),
|
||||
};
|
||||
let desc = if buff.is_buff {
|
||||
|
@ -482,8 +482,10 @@ impl<'a> Widget for Group<'a> {
|
||||
}) as u32; // Percentage to determine which frame of the timer overlay is displayed
|
||||
let buff_img = match buff.kind {
|
||||
BuffKind::Regeneration { .. } => self.imgs.buff_plus_0,
|
||||
BuffKind::Saturation { .. } => self.imgs.buff_saturation_0,
|
||||
BuffKind::Bleeding { .. } => self.imgs.debuff_bleed_0,
|
||||
BuffKind::Cursed { .. } => self.imgs.debuff_skull_0,
|
||||
BuffKind::Potion { .. } => self.imgs.buff_potion_0,
|
||||
};
|
||||
let buff_widget = Image::new(buff_img).w_h(15.0, 15.0);
|
||||
let buff_widget = if let Some(id) = prev_id {
|
||||
@ -510,10 +512,13 @@ impl<'a> Widget for Group<'a> {
|
||||
// Create Buff tooltip
|
||||
let title = match buff.kind {
|
||||
BuffKind::Regeneration { .. } => {
|
||||
localized_strings.get("buff.title.heal_test")
|
||||
localized_strings.get("buff.title.heal")
|
||||
},
|
||||
BuffKind::Saturation { .. } => {
|
||||
localized_strings.get("buff.title.saturation")
|
||||
},
|
||||
BuffKind::Bleeding { .. } => {
|
||||
localized_strings.get("debuff.title.bleed_test")
|
||||
localized_strings.get("debuff.title.bleed")
|
||||
},
|
||||
_ => localized_strings.get("buff.title.missing"),
|
||||
};
|
||||
@ -527,10 +532,13 @@ impl<'a> Widget for Group<'a> {
|
||||
};
|
||||
let desc_txt = match buff.kind {
|
||||
BuffKind::Regeneration { .. } => {
|
||||
localized_strings.get("buff.desc.heal_test")
|
||||
localized_strings.get("buff.desc.heal")
|
||||
},
|
||||
BuffKind::Saturation { .. } => {
|
||||
localized_strings.get("buff.desc.saturation")
|
||||
},
|
||||
BuffKind::Bleeding { .. } => {
|
||||
localized_strings.get("debuff.desc.bleed_test")
|
||||
localized_strings.get("debuff.desc.bleed")
|
||||
},
|
||||
_ => localized_strings.get("buff.desc.missing"),
|
||||
};
|
||||
|
@ -352,6 +352,8 @@ image_ids! {
|
||||
|
||||
// Buffs
|
||||
buff_plus_0: "voxygen.element.icons.de_buffs.buff_plus_0",
|
||||
buff_saturation_0: "voxygen.element.icons.de_buffs.buff_saturation_0",
|
||||
buff_potion_0: "voxygen.element.icons.de_buffs.buff_potion_0",
|
||||
|
||||
// Debuffs
|
||||
debuff_skull_0: "voxygen.element.icons.de_buffs.debuff_skull_0",
|
||||
|
@ -243,8 +243,10 @@ impl<'a> Widget for Overhead<'a> {
|
||||
}) as u32; // Percentage to determine which frame of the timer overlay is displayed
|
||||
let buff_img = match buff.kind {
|
||||
BuffKind::Regeneration { .. } => self.imgs.buff_plus_0,
|
||||
BuffKind::Saturation { .. } => self.imgs.buff_saturation_0,
|
||||
BuffKind::Bleeding { .. } => self.imgs.debuff_bleed_0,
|
||||
BuffKind::Cursed { .. } => self.imgs.debuff_skull_0,
|
||||
BuffKind::Potion { .. } => self.imgs.buff_potion_0,
|
||||
};
|
||||
let buff_widget = Image::new(buff_img).w_h(20.0, 20.0);
|
||||
// Sort buffs into rows of 5 slots
|
||||
|
@ -537,7 +537,7 @@ impl Archetype for House {
|
||||
center_offset.x,
|
||||
center_offset.y,
|
||||
z + 100,
|
||||
)) % 11
|
||||
)) % 12
|
||||
{
|
||||
0 => SpriteKind::Planter,
|
||||
1 => SpriteKind::ChairSingle,
|
||||
@ -554,6 +554,13 @@ impl Archetype for House {
|
||||
7 => SpriteKind::DrawerSmall,
|
||||
8 => SpriteKind::TableSide,
|
||||
9 => SpriteKind::WardrobeSingle,
|
||||
10 => {
|
||||
if dynamic_rng.gen_range(0, 10) == 0 {
|
||||
SpriteKind::PotionMinor
|
||||
} else {
|
||||
SpriteKind::VialEmpty
|
||||
}
|
||||
},
|
||||
_ => SpriteKind::Pot,
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user