-
-
Save Stadler76/719e1cc3b83c441d5056b733905cbd8a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package classes.Scenes.Areas.VolcanicCrag | |
{ | |
import classes.*; | |
import classes.BodyParts.*; | |
import classes.GlobalFlags.*; | |
import classes.internals.WeightedAction; | |
import classes.internals.WeightedDrop; | |
/** | |
* ... | |
* @author ... | |
*/ | |
public class Hellcat extends Monster | |
{ | |
public static const SPELL_COST_COMPULSION:Number = 20; | |
public static const SPELL_COST_TAIL_SWIPE:Number = 25; | |
public static const SPELL_COST_SAND_ATTACK:Number = 15; | |
//special 1: cockatrice compulsion attack | |
//(Check vs. Intelligence/Sensitivity, loss = recurrent speed loss each | |
//round, one time lust increase): | |
private function compulsion():void | |
{ | |
if (!hasEnoughFatigueLeft(SPELL_COST_COMPULSION)) { | |
// Normal attack because too fatigued | |
eAttack(); | |
return; | |
} | |
fatigue += SPELL_COST_SAND_ATTACK; | |
game.combat.combatRoundOver(); | |
} | |
//Special 2: cockatrice sand attack (blinds for 2-4 turns, 50% chance of success on hit): | |
private function sandAttack():void | |
{ | |
if (!hasEnoughFatigueLeft(SPELL_COST_SAND_ATTACK)) { | |
// Normal attack because too fatigued | |
eAttack(); | |
return; | |
} | |
fatigue += SPELL_COST_SAND_ATTACK; | |
game.combat.combatRoundOver(); | |
} | |
//Special 3: basilisk tail swipe (Small physical damage): | |
private function tailSwipe():void | |
{ | |
if (!hasEnoughFatigueLeft(SPELL_COST_TAIL_SWIPE)) { | |
// Normal attack because too fatigued | |
eAttack(); | |
return; | |
} | |
fatigue += SPELL_COST_TAIL_SWIPE; | |
game.combat.combatRoundOver(); | |
} | |
//Tease attack | |
private function cockaTease():void | |
{ | |
if (rand(2) == 0) { | |
outputText("The cockatrice turns around slowly, looking over his shoulder as he slowly lifts his tail to reveal his tight rump." | |
+" He rubs his clawed fingers over the taut flesh of his feathered cheeks, before his tail cracks against one cheek" | |
+" like a whip. You can’t help but flush at his brazen display."); | |
} else { | |
outputText("The cockatrice casually leans against a nearby rock, a scaled finger trailing down his lithe stomach and tracing around" | |
+" the edge of his genital slit as he looks to the distance. As the tip of his thick purple member starts to peek out he" | |
+" looks over at you with a smouldering gaze, cocking his head to the side as if beckoning you to ‘come play’." | |
+" You seriously consider his offer as you feel your loins burn with desire."); | |
} | |
player.takeLustDamage(12 + rand(player.lib / 8), true); | |
game.combat.combatRoundOver(); | |
} | |
//basilisk physical attack: With lightning speed, the basilisk slashes you with its index claws! | |
//Noun: claw | |
override protected function performCombatAction():void | |
{ | |
var actionChoices:WeightedAction = new WeightedAction() | |
.add(sandAttack, 40) | |
.add(cockaTease, 40) | |
.add(tailSwipe, 30) | |
.add(eAttack, 20); | |
if (!player.hasStatusEffect(StatusEffects.BasiliskCompulsion) && !hasStatusEffect(StatusEffects.Blind)) | |
actionChoices.add(compulsion, 65); | |
actionChoices.exec(); | |
} | |
override public function defeated(hpVictory:Boolean):void | |
{ | |
//game.highMountains.cockatriceScene.defeatCockatrice(); | |
} | |
override public function won(hpVictory:Boolean, pcCameWorms:Boolean):void | |
{ | |
/* | |
clearOutput(); | |
if (hpVictory) { | |
player.HP = 1; | |
outputText("Your wounds are too great to bear, and you fall unconscious."); | |
} | |
if (pcCameWorms) { | |
outputText("\n\nThe cockatrice smirks, but waits for you to finish..."); | |
doNext(game.combat.endLustLoss); | |
} else { | |
game.highMountains.cockatriceScene.loseToCockatrice(); | |
} | |
*/ | |
} | |
public function Hellcat() | |
{ | |
this.a = "the "; | |
this.short = "cockatrice"; | |
this.imageName = "cockatrice"; | |
this.long = "The cockatrice before you stands at about 6 foot 2. The harpy/basilisk hybrid hops from one clawed foot to the other," | |
+" its turquoise neck ruff puffed out. From the creatures flat chest and tight butt, you assume that it must be male." | |
+" He watches you, his electric blue eyes glinting as his midnight blue tail swishes behind him. Every so often he lunges" | |
+" forward, beak open before revealing it was a feint. He is wielding his sharp claws as a weapon and is shielded only by his" | |
+" exotic plumage and cream scaled belly." | |
+" [if (monster.canFly) Every so often he spreads his large feathered wings in an attempt to intimidate you.]" | |
+" His lizard like feet occasionally gouge into the rubble of the plateau, flinging it up as he shifts his stance. "; | |
this.race = "Hellcat"; | |
// this.plural = false; | |
this.createCock(8,2, CockTypesEnum.LIZARD); | |
this.balls = 2; | |
this.ballSize = 2; | |
this.cumMultiplier = 4; | |
createBreastRow(0); | |
this.ass.analLooseness = Ass.LOOSENESS_TIGHT; | |
this.ass.analWetness = Ass.WETNESS_DRY; | |
this.createStatusEffect(StatusEffects.BonusACapacity,30,0,0,0); | |
this.tallness = 6*12+2; | |
this.hips.rating = Hips.RATING_AMPLE; | |
this.butt.rating = Butt.RATING_TIGHT; | |
this.lowerBody.type = LowerBody.COCKATRICE; | |
this.face.type = Face.COCKATRICE; | |
this.tongue.type = Tongue.LIZARD; | |
this.ears.type = Ears.COCKATRICE; | |
this.eyes.type = Eyes.COCKATRICE; | |
this.hair.type = Hair.FEATHER; | |
this.skin.tone = "midnight blue"; | |
this.skin.setType(Skin.LIZARD_SCALES); | |
this.hair.color = "blue"; | |
this.hair.length = 2; | |
/* | |
// Bassy: | |
initStrTouSpeInte(85, 70, 35, 70); | |
initLibSensCor(50, 35, 60); | |
// Harpy: | |
initStrTouSpeInte(60, 40, 90, 40); | |
initLibSensCor(70, 30, 80); | |
*/ | |
initStrTouSpeInte(65, 50, 85, 70); | |
initLibSensCor(65, 25, 20); | |
this.weaponName = "talons"; | |
this.weaponVerb = "claw"; | |
this.weaponAttack = 30; | |
this.armorName = "scales and feathers"; | |
this.armorDef = 10; | |
this.armorPerk = ""; | |
this.armorValue = 70; | |
this.bonusHP = 200; | |
this.lust = 30; | |
this.lustVuln = .5; | |
this.temperment = TEMPERMENT_RANDOM_GRAPPLES; | |
this.level = 14; | |
this.gems = rand(10) + 10; | |
this.drop = new WeightedDrop() | |
.add(consumables.REPTLUM, 35) | |
.add(consumables.GLDSEED, 35) | |
.add(consumables.TOTRICE, 20) | |
.add(null, 10); | |
this.tail.type = Tail.COCKATRICE; | |
this.tail.recharge = 0; | |
this.createPerk(PerkLib.BasiliskResistance, 0, 0, 0, 0); | |
checkMonster(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment