Skip to content

Instantly share code, notes, and snippets.

@Stadler76
Last active November 9, 2018 18:35
Show Gist options
  • Save Stadler76/719e1cc3b83c441d5056b733905cbd8a to your computer and use it in GitHub Desktop.
Save Stadler76/719e1cc3b83c441d5056b733905cbd8a to your computer and use it in GitHub Desktop.
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