Issix-mod/Modules/IssixModule/Attacks/CommandRoll.gd
Frisk 0ffeaf9beb Added two attacks (WIP)
Updates to scenes
Added new scene
Improvements in other scenes
2025-01-21 23:31:46 +01:00

48 lines
1.4 KiB
GDScript

extends Attack
# TODO Teach some population of pawns this attack
func _init():
id = "PetCommandRoll"
category = Category.Special
aiCategory = AICategory.Offensive
func getVisibleName(_context = {}):
return "Command: Roll"
func getVisibleDesc(_context = {}):
return "Use implanted pet directive to make you roll over.."
func _doAttack(_attacker, _receiver, _context = {}):
var texts = [
"{attacker.name} orders {receiver.name} to roll over like a good puppy {receiver.he} is.",
"{attacker.name} points at the floor with {attacker.his} finger and commands {receiver.name} to roll over"
]
var text = RNG.pick(texts)
if(_receiver.addEffect(StatusEffect.Stunned, [2])):
text += "\n[b]{receiver.name} obeys the command without question.[/b]"
_receiver.addEffect(StatusEffect.Weakness, [1])
return {
text = text,
}
func _canUse(_attacker, _receiver, _context = {}):
if(_attacker.isGagged()):
return false
if(_receiver.hasPerk("Commands") && !_receiver.statusEffects.has(StatusEffect.Stunned)):
return true
return false
func getAnticipationText(_attacker, _receiver):
return "{attacker.name} opens {attacker.his} mouth while pointing at floor."
func getAttackSoloAnimation():
return "throw"
func getRequirements():
return [AttackRequirement.FreeHands, AttackRequirement.CanTalk]
func getRecieverArmorScaling(_attacker, _receiver, _damageType) -> float:
return 0.0