Skip to content

Commit

Permalink
Add some new achievements
Browse files Browse the repository at this point in the history
the display info for them hasnt been added yet, this is just the game logic for them
  • Loading branch information
DBTDerpbox committed May 9, 2024
1 parent c850f90 commit 20fd3f2
Show file tree
Hide file tree
Showing 41 changed files with 411 additions and 81 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"values":[
"lem.battle:game/end/spectate/roundend"
]
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"values":[
"lem.battle:game/start/invulnerability/count"
]
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"display": {
"icon": {
"item": "minecraft:ghast_spawn_egg",
"nbt": "{CustomModelData:6}"
},
"title": {
"translate": "lem.battle.advancement.balanced.name"
},
"description": {
"translate": "lem.battle.advancement.balanced.desc"
},
"frame": "task",
"hidden": true
},
"parent": "lem.base:root",
"criteria": {
"requirement": {
"trigger": "minecraft:impossible"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"display": {
"icon": {
"item": "minecraft:ghast_spawn_egg",
"nbt": "{CustomModelData:6}"
},
"title": {
"translate": "lem.battle.advancement.balanced2.name"
},
"description": {
"translate": "lem.battle.advancement.balanced2.desc"
},
"frame": "task",
"hidden": true
},
"parent": "lem.base:root",
"criteria": {
"requirement": {
"trigger": "minecraft:impossible"
}
}
}
22 changes: 22 additions & 0 deletions world/datapacks/lem.battle/data/lem.battle/advancements/fast.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"display": {
"icon": {
"item": "minecraft:ghast_spawn_egg",
"nbt": "{CustomModelData:6}"
},
"title": {
"translate": "lem.battle.advancement.fast.name"
},
"description": {
"translate": "lem.battle.advancement.fast.desc"
},
"frame": "task",
"hidden": true
},
"parent": "lem.base:root",
"criteria": {
"requirement": {
"trigger": "minecraft:impossible"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"display": {
"icon": {
"item": "minecraft:ghast_spawn_egg",
"nbt": "{CustomModelData:6}"
},
"title": {
"translate": "lem.battle.advancement.forked.name"
},
"description": {
"translate": "lem.battle.advancement.forked.desc"
},
"frame": "task",
"hidden": true
},
"parent": "lem.base:root",
"criteria": {
"requirement": {
"trigger": "minecraft:impossible"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,7 @@
"player_bow_kill": {
"trigger": "minecraft:player_killed_entity",
"conditions": {
"player": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"equipment": {
"offhand": {
"tag": "lem.battle:bows"
}
}
}
}
],
"player": [],
"entity": [
{
"condition": "minecraft:entity_properties",
Expand All @@ -26,12 +14,9 @@
}
],
"killing_blow": {
"tags": [
{
"id": "minecraft:is_projectile",
"expected": true
}
]
"direct_entity": {
"type": "minecraft:arrow"
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"criteria": {
"player_trident_kill": {
"trigger": "minecraft:player_killed_entity",
"conditions": {
"player": [],
"entity": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"type": "minecraft:player"
}
}
],
"killing_blow": {
"direct_entity": {
"type": "minecraft:trident"
}
}
}
}
},
"rewards": {
"function": "lem.battle:game/achievement/forked/check"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"criteria": {
"requirement": {
"trigger": "minecraft:player_killed_entity",
"conditions": {
"player": {
"effects": {
"minecraft:nausea": {}
}
},
"entity": {
"type": "minecraft:player"
}
}
}
},
"rewards": {
"function": "lem.battle:game/achievement/sick/check"
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"display": {
"icon": {
"item": "minecraft:ghast_spawn_egg",
"nbt": "{CustomModelData:6}"
},
"title": {
"translate": "lem.battle.advancement.golden.name"
},
"description": {
"translate": "lem.battle.advancement.golden.desc"
},
"frame": "task",
"hidden": true
},
"parent": "lem.base:root",
"criteria": {
"requirement": {
"trigger": "minecraft:impossible"
}
}
}
22 changes: 22 additions & 0 deletions world/datapacks/lem.battle/data/lem.battle/advancements/sick.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"display": {
"icon": {
"item": "minecraft:ghast_spawn_egg",
"nbt": "{CustomModelData:6}"
},
"title": {
"translate": "lem.battle.advancement.sick.name"
},
"description": {
"translate": "lem.battle.advancement.sick.desc"
},
"frame": "task",
"hidden": true
},
"parent": "lem.base:root",
"criteria": {
"requirement": {
"trigger": "minecraft:impossible"
}
}
}
22 changes: 22 additions & 0 deletions world/datapacks/lem.battle/data/lem.battle/advancements/walls.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"display": {
"icon": {
"item": "minecraft:ghast_spawn_egg",
"nbt": "{CustomModelData:6}"
},
"title": {
"translate": "lem.battle.advancement.walls.name"
},
"description": {
"translate": "lem.battle.advancement.walls.desc"
},
"frame": "task",
"hidden": true
},
"parent": "lem.base:root",
"criteria": {
"requirement": {
"trigger": "minecraft:impossible"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ userconfig @s test lem.battle:achievement_scratch EQUAL _NOTHING_ runCommand use
userconfig @s test lem.battle:achievement_hunger EQUAL _NOTHING_ runCommand userconfig @s set lem.battle:achievement_hunger false
userconfig @s test lem.battle:achievement_cupid EQUAL _NOTHING_ runCommand userconfig @s set lem.battle:achievement_cupid false
userconfig @s test lem.battle:achievement_mine EQUAL _NOTHING_ runCommand userconfig @s set lem.battle:achievement_mine false
userconfig @s test lem.battle:achievement_forked EQUAL _NOTHING_ runCommand userconfig @s set lem.battle:achievement_forked false
userconfig @s test lem.battle:achievement_fast EQUAL _NOTHING_ runCommand userconfig @s set lem.battle:achievement_fast false
userconfig @s test lem.battle:achievement_golden EQUAL _NOTHING_ runCommand userconfig @s set lem.battle:achievement_golden false
userconfig @s test lem.battle:achievement_sick EQUAL _NOTHING_ runCommand userconfig @s set lem.battle:achievement_sick false
userconfig @s test lem.battle:achievement_balanced EQUAL _NOTHING_ runCommand userconfig @s set lem.battle:achievement_balanced false
userconfig @s test lem.battle:achievement_balanced2 EQUAL _NOTHING_ runCommand userconfig @s set lem.battle:achievement_balanced2 false
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
##Hunger Pain
execute unless score #Store lem.battle.hungertype matches 2 as @a[tag=ingame,scores={lem.battle.kill=1..,lem.battle.hungerbar=..0}] run function lem.battle:game/achievement/give/hunger
execute unless score #Store lem.battle.hungertype matches 2 as @a[tag=ingame,scores={lem.battle.kill=1..,lem.battle.hungerbar=..0}] run userconfig @s test lem.battle:achievement_hunger NOT_EQUAL true runFunction lem.battle:game/achievement/give/hunger

##Mine!
userconfig @a[tag=ingame] test lem.battle:achievement_mine EQUAL false runCommand execute if score @s lem.battle.chestcount >= #Store lem.battle.chestcount run function lem.battle:game/achievement/give/mine
userconfig @a[tag=ingame] test lem.battle:achievement_mine NOT_EQUAL true runCommand execute if score @s lem.battle.chestcount >= #Store lem.battle.chestcount run function lem.battle:game/achievement/give/mine

##Tis but a scratch
execute as @a[tag=ingame,scores={lem.battle.scratch=2000..}] run function lem.battle:game/achievement/give/scratch
execute as @a[tag=ingame,scores={lem.battle.scratch=2000..}] run userconfig @s test lem.battle:achievement_scratch NOT_EQUAL true runFunction lem.battle:game/achievement/give/scratch

##Perfectly Balanced
execute as @a[tag=ingame] if predicate lem.battle:achievement/balanced run function lem.battle:game/achievement/give/balanced

##As all things should be
execute as @a[tag=ingame] if predicate lem.battle:achievement/balanced2 run function lem.battle:game/achievement/give/balanced2


##Reset scores
#Kill
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,4 @@
execute unless score #Store lem.recon matches 1 if entity @s[tag=ingame] unless score @s lem.battle.cupid matches 2.. run function lem.battle:game/achievement/cupid/count

##Revoke advancement
advancement revoke @s only lem.battle:game/cupid/mainhand
advancement revoke @s only lem.battle:game/cupid/offhand
advancement revoke @s only lem.battle:game/achievement/cupid
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
##Cupid
#Add count
##Add count
scoreboard players add @s lem.battle.cupid 1
#Give achivement

##Give achievement
execute as @s[scores={lem.battle.cupid=2..}] run function lem.battle:game/achievement/give/cupid
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
##Check if container is opened
execute if score @s lem.battle.fast.chest matches 1.. run function lem.battle:game/achievement/fast/chestcheck
execute if score @s lem.battle.fast.shulker_box matches 1.. run function lem.battle:game/achievement/fast/chestcheck
execute if score @s lem.battle.fast.barrel matches 1.. run function lem.battle:game/achievement/fast/chestcheck
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
##Check if nearest chest is a power chest
execute at @e[type=minecraft:area_effect_cloud,sort=nearest,tag=Chest,limit=1] if entity @e[tag=PowerfulChest,sort=nearest,limit=1,distance=..0.1] run function lem.battle:game/achievement/give/fast

##Reset scores
scoreboard players reset @s lem.battle.fast.chest
scoreboard players reset @s lem.battle.fast.shulker_box
scoreboard players reset @s lem.battle.fast.barrel
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
##Run if recon is disabled
execute unless score #Store lem.recon matches 1 if entity @s[tag=ingame] unless score @s lem.battle.forked matches 2.. run function lem.battle:game/achievement/forked/count

##Revoke advancement
advancement revoke @s only lem.battle:game/achievement/forked
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
##Add count
scoreboard players add @s lem.battle.forked 1

##Give achievement
execute as @s[scores={lem.battle.forked=2..}] run function lem.battle:game/achievement/give/forked
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
##Display in chat
userconfig @s test lem.battle:achievement_balanced NOT_EQUAL true runCommand advancement grant @s only lem.battle:balanced

##Save achievement
userconfig @s set lem.battle:achievement_balanced true

##Run global functions
function lem.base:game/achievement/give/global

0 comments on commit 20fd3f2

Please sign in to comment.