Skip to content

Commit

Permalink
change up and add ninja objectives (#2359)
Browse files Browse the repository at this point in the history
* change up and add ninja objectives

* make cloak stealable

* formatting

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
  • Loading branch information
deltanedas authored Dec 8, 2024
1 parent 190030e commit 6098390
Show file tree
Hide file tree
Showing 9 changed files with 141 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
objective-ninja-kill-head-title = Execute {$targetName}, {CAPITALIZE($job)}
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ steal-target-groups-notary-stamp = notary stamp
steal-target-groups-silvia = silvia
steal-target-groups-recruiter-pen = recruiter's pen
steal-target-groups-captains-cloak = captain's cloak
81 changes: 81 additions & 0 deletions Resources/Prototypes/DeltaV/Objectives/ninja.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Kill

- type: entity
abstract: true
parent: [ BaseNinjaObjective, BaseTeachLessonObjective ]
id: BaseNinjaTeachLessonObjective
description: This fool has spoken out against the Spider Clan. Teach them the error of their ways.
components:
- type: Objective
unique: true
icon:
sprite: Objects/Weapons/Throwable/throwing_star.rsi
state: icon
- type: TargetObjective
title: objective-condition-teach-person-title

- type: entity
parent: BaseNinjaTeachLessonObjective
id: NinjaTeachLessonRandomHeadObjective
components:
- type: PickRandomHead

- type: entity
parent: BaseNinjaTeachLessonObjective
id: NinjaTeachLessonRandomPersonObjective
components:
- type: PickRandomPerson

- type: entity
parent: [ BaseNinjaObjective, BaseKillObjective ]
id: NinjaKillRandomHeadObjective
description: The Spider Clan is in need of more saboteur cyborgs. This head's brain will be perfect.
components:
- type: Objective
icon:
sprite: Objects/Weapons/Melee/energykatana.rsi
state: icon
- type: TargetObjective
title: objective-ninja-kill-head-title
- type: PickRandomHead
- type: KillPersonCondition
requireDead: true

# Steal

- type: entity
abstract: true
parent: [ BaseNinjaObjective, BaseStealObjective ]
id: BaseNinjaStealObjective
components:
- type: StealCondition
verifyMapExistence: false

- type: entity
parent: BaseNinjaStealObjective
id: NinjaIanDossierStealObjective
components:
- type: StealCondition
stealGroup: BookIanDossier

- type: entity
parent: BaseNinjaStealObjective
id: NinjaLuckyBillStealObjective
components:
- type: StealCondition
stealGroup: SpaceCashLuckyBill

- type: entity
parent: BaseNinjaStealObjective
id: NinjaCaptainsCloakStealObjective
components:
- type: StealCondition
stealGroup: CaptainsCloak

- type: entity
parent: BaseNinjaStealObjective
id: NinjaNotaryStampStealObjective
components:
- type: StealCondition
stealGroup: RubberStampNotary
owner: job-name-clerk
35 changes: 35 additions & 0 deletions Resources/Prototypes/DeltaV/Objectives/objectiveGroups.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
## Ninja
# Hacking things
- type: weightedRandom
id: NinjaHackingObjectiveGroups
weights:
NinjaObjectiveGroupHacking: 1

- type: weightedRandom
id: NinjaObjectiveGroupHacking
weights:
StealResearchObjective: 1
TerrorObjective: 1
MassArrestObjective: 1

# Extra objectives besides hacking things
- type: weightedRandom
id: NinjaBonusObjectiveGroups
weights:
NinjaObjectiveGroupKill: 1
NinjaObjectiveGroupSteal: 1

- type: weightedRandom
id: NinjaObjectiveGroupKill
weights:
NinjaTeachLessonRandomHeadObjective: 1
NinjaTeachLessonRandomPersonObjective: 0.5
NinjaKillRandomHeadObjective: 0.25 # rarely have to gib, but it'll be towards the end of the round anyway

# Steal random sentimental things, hopefully a traitor didn't do it first...
- type: weightedRandom
id: NinjaObjectiveGroupSteal
weights:
NinjaIanDossierStealObjective: 1
NinjaLuckyBillStealObjective: 1
NinjaCaptainsCloakStealObjective: 0.75
9 changes: 9 additions & 0 deletions Resources/Prototypes/DeltaV/Objectives/stealTargetGroups.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,12 @@
sprite:
sprite: DeltaV/Mobs/Pets/silvia.rsi
state: silvia

# Ninja

- type: stealTargetGroup
id: CaptainsCloak
name: steal-target-groups-captains-cloak
sprite:
sprite: Clothing/Neck/Cloaks/cap.rsi
state: icon
2 changes: 1 addition & 1 deletion Resources/Prototypes/DeltaV/Objectives/traitor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
icon:
sprite: Objects/Weapons/Guns/Pistols/viper.rsi
state: icon
- type: TeachLessonCondition
- type: ObjectiveBlacklistRequirement
blacklist:
components:
Expand All @@ -78,4 +79,3 @@
- type: TargetObjective
title: objective-condition-teach-person-title
- type: PickRandomPerson
- type: TeachLessonCondition
4 changes: 2 additions & 2 deletions Resources/Prototypes/Entities/Clothing/Neck/cloaks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
- type: Sprite
sprite: Clothing/Neck/Cloaks/cap.rsi
- type: StealTarget
stealGroup: HeadCloak
stealGroup: CaptainsCloak # DeltaV: replaces HeadCloak for ninja

- type: entity
parent: [ClothingNeckBase, BaseCommandContraband]
Expand Down Expand Up @@ -113,7 +113,7 @@
- type: Sprite
sprite: Clothing/Neck/Cloaks/capcloakformal.rsi
- type: StealTarget
stealGroup: HeadCloak
stealGroup: CaptainsCloak # DeltaV: replaces HeadCloak for ninja

- type: entity
parent: ClothingNeckBase
Expand Down
13 changes: 10 additions & 3 deletions Resources/Prototypes/GameRules/events.yml
Original file line number Diff line number Diff line change
Expand Up @@ -200,12 +200,19 @@
- type: AntagLoadProfileRule
- type: AntagObjectives
objectives:
- StealResearchObjective
#- StealResearchObjective # DeltaV: Moved to random objectives
- DoorjackObjective
- SpiderChargeObjective
- TerrorObjective
- MassArrestObjective
#- TerrorObjective # DeltaV: Moved to random objectives
#- MassArrestObjective # DeltaV: Moved to random objectives
- NinjaSurviveObjective
- type: AntagRandomObjectives # DeltaV: Random objectives for hacking and killing
sets:
- groups: NinjaHackingObjectiveGroups
maxPicks: 2 # only pick 2 of 3 of them to reduce metagaming
- groups: NinjaBonusObjectiveGroups
maxPicks: 2 # 2 kill or steal objectives max
maxDifficulty: 100 # ignore difficulty, use maxPicks instead
- type: AntagSelection
agentName: ninja-round-end-agent-name
definitions:
Expand Down
2 changes: 1 addition & 1 deletion Resources/Prototypes/Objectives/thief.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
- type: StealCondition
stealGroup: HeadCloak
minCollectionSize: 3
maxCollectionSize: 6
maxCollectionSize: 5 # DeltaV: Reduced from 6 since captain cloak no longer counts
- type: Objective
difficulty: 1.5

Expand Down

0 comments on commit 6098390

Please sign in to comment.