|
|
|
@@ -1678,3 +1678,218 @@ function lalimStruggle(predator) { |
|
|
|
] |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
/* POOJAWA */ |
|
|
|
|
|
|
|
function Poojawa() { |
|
|
|
Creature.call(this, "Poojawa", 20, 40, 30); |
|
|
|
|
|
|
|
this.hasName = true; |
|
|
|
|
|
|
|
this.description = function() { return "Poojawa"; }; |
|
|
|
|
|
|
|
this.attacks = []; |
|
|
|
|
|
|
|
this.attacks.push(poojawaBeckonWait(this)); |
|
|
|
this.attacks.push(poojawaBeckonTease(this)); |
|
|
|
this.attacks.push(poojawaBeckonStep(this)); |
|
|
|
this.attacks.push(poojawaBeckonSaunter(this)); |
|
|
|
|
|
|
|
this.attacks.push(poojawaBeckonCatch(this)); |
|
|
|
this.attacks.push(poojawaBeckonCaught(this)); |
|
|
|
|
|
|
|
this.backupAttack = new pass(this); |
|
|
|
|
|
|
|
this.playerAttacks = []; |
|
|
|
|
|
|
|
this.playerAttacks.push(poojawaPlayerForward); |
|
|
|
this.playerAttacks.push(poojawaPlayerStay); |
|
|
|
this.playerAttacks.push(poojawaPlayerBackward); |
|
|
|
/*this.playerAttacks.push(poojawaPlayerFlee); |
|
|
|
|
|
|
|
this.playerAttacks.push(poojawaPlayerPinnedSubmit); |
|
|
|
this.playerAttacks.push(poojawaPlayerPinnedStruggle); |
|
|
|
|
|
|
|
this.playerAttacks.push(poojawaPlayerUnbirthSubmit); |
|
|
|
this.playerAttacks.push(poojawaPlayerUnbirthStruggle);*/ |
|
|
|
|
|
|
|
this.digests = []; |
|
|
|
|
|
|
|
this.digests.push(new digestPlayerStomach(this,50)); |
|
|
|
|
|
|
|
this.struggles = []; |
|
|
|
|
|
|
|
this.struggles.push(new rub(this)); |
|
|
|
|
|
|
|
this.prefs.prey = false; |
|
|
|
|
|
|
|
this.consts = {}; |
|
|
|
|
|
|
|
this.consts.caughtDist = 0; |
|
|
|
this.consts.startDist = 3; |
|
|
|
this.consts.escapeDist = 10; |
|
|
|
|
|
|
|
this.flags.distance = this.consts.startDist; |
|
|
|
|
|
|
|
this.flags.state = "beckon"; |
|
|
|
|
|
|
|
this.startCombat = function(player) { |
|
|
|
player.flags.teases = 0; |
|
|
|
return ["You gasp softly as a purple hand grips your shoulder - turning and stumbling back a few paces to see that sultry sabersune watching you with devious eyes. She's up to no good..."]; |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
/* PLAYER MOVES */ |
|
|
|
|
|
|
|
function poojawaPlayerForward(player) { |
|
|
|
return { |
|
|
|
name: "Step forward", |
|
|
|
desc: "Get a little closer...", |
|
|
|
attack: function(poojawa) { |
|
|
|
poojawa.flags.distance -= 1; |
|
|
|
return ["You swallow nervously, stepping closer to the sultry sabersune."]; |
|
|
|
}, |
|
|
|
requirements: [ |
|
|
|
function(player, poojawa) { |
|
|
|
return poojawa.flags.state == "beckon"; |
|
|
|
} |
|
|
|
] |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
function poojawaPlayerStay(player) { |
|
|
|
return { |
|
|
|
name: "Stand still", |
|
|
|
desc: "Just wait...", |
|
|
|
attack: function(poojawa) { |
|
|
|
return ["Your knees quiver as a blush washes over your face - and you stand still."]; |
|
|
|
}, |
|
|
|
requirements: [ |
|
|
|
function(player, poojawa) { |
|
|
|
return poojawa.flags.state == "beckon"; |
|
|
|
} |
|
|
|
] |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
function poojawaPlayerBackward(player) { |
|
|
|
return { |
|
|
|
name: "Step backward", |
|
|
|
desc: "Get a little further...", |
|
|
|
attack: function(poojawa) { |
|
|
|
poojawa.flags.distance += 1; |
|
|
|
return ["Wary for any surprises from the sabersune, you take a nervous step back."]; |
|
|
|
}, |
|
|
|
requirements: [ |
|
|
|
function(player, poojawa) { |
|
|
|
return poojawa.flags.state == "beckon"; |
|
|
|
} |
|
|
|
] |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
/* POOJAWA MOVES */ |
|
|
|
|
|
|
|
function poojawaBeckonWait(poojawa) { |
|
|
|
return { |
|
|
|
attackPlayer: function(player) { |
|
|
|
return ["The sune does nothing - she just watches and waits, those pretty pink eyes locked with yours..."]; |
|
|
|
}, |
|
|
|
requirements: [ |
|
|
|
function(poojawa, player) { |
|
|
|
return poojawa.flags.state == "beckon"; |
|
|
|
} |
|
|
|
], |
|
|
|
priority: 1, |
|
|
|
weight: function(poojawa, player) { return 1; } |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
function poojawaBeckonTease(poojawa) { |
|
|
|
return { |
|
|
|
attackPlayer: function(player) { |
|
|
|
player.flags.teases += 1; |
|
|
|
return ["Poojawa's jaws open part-way, flashing her slick fangs as she lets her tongue roll over her fingers ever-so-smoothly. \"Sweetie,\" she coos, \"you <i>know</i> you want this~\""]; |
|
|
|
}, |
|
|
|
requirements: [ |
|
|
|
function(poojawa, player) { |
|
|
|
return poojawa.flags.state == "beckon"; |
|
|
|
} |
|
|
|
], |
|
|
|
priority: 1, |
|
|
|
weight: function(poojawa, player) { return 1; } |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
function poojawaBeckonStep(poojawa) { |
|
|
|
return { |
|
|
|
attackPlayer: function(player) { |
|
|
|
poojawa.flags.distance -= 1; |
|
|
|
return ["Poojawa takes a step toward you, tails swaying behind her."]; |
|
|
|
}, |
|
|
|
requirements: [ |
|
|
|
function(poojawa, player) { |
|
|
|
return poojawa.flags.state == "beckon"; |
|
|
|
} |
|
|
|
], |
|
|
|
priority: 1, |
|
|
|
weight: function(poojawa, player) { return 1; } |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
function poojawaBeckonSaunter(poojawa) { |
|
|
|
return { |
|
|
|
attackPlayer: function(player) { |
|
|
|
poojawa.flags.distance -= 3; |
|
|
|
return ["The sabersune takes a few lazy steps toward you, each one eroding several of your own anxious footsteps..."]; |
|
|
|
}, |
|
|
|
requirements: [ |
|
|
|
function(poojawa, player) { |
|
|
|
return poojawa.flags.state == "beckon"; |
|
|
|
}, |
|
|
|
function(poojawa, player) { |
|
|
|
return poojawa.flags.distance > 5; |
|
|
|
} |
|
|
|
], |
|
|
|
priority: 1, |
|
|
|
weight: function(poojawa, player) { return poojawa.flags.distance / 6; } |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
function poojawaBeckonCatch(poojawa) { |
|
|
|
return { |
|
|
|
attackPlayer: function(player) { |
|
|
|
poojawa.flags.state = "caught"; |
|
|
|
return ["One last step, and the sabersune is on top of you. She grips you with both hands, pulling you in close and stuffing your muzzle into her faintly-scented bosom. You squirm and struggle, but can do little as she pulls you away from the noisy bar and into a secluded alcove. \"Shhh, darling,\" she murmurs, clicking her tongue at your muffled protests."]; |
|
|
|
}, |
|
|
|
requirements: [ |
|
|
|
function(poojawa, player) { |
|
|
|
return poojawa.flags.state == "beckon"; |
|
|
|
}, |
|
|
|
function(poojawa, player) { |
|
|
|
return poojawa.flags.distance == 1; |
|
|
|
} |
|
|
|
], |
|
|
|
priority: 1, |
|
|
|
weight: function(poojawa, player) { return 1; } |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
function poojawaBeckonCaught(poojawa) { |
|
|
|
return { |
|
|
|
attackPlayer: function(player) { |
|
|
|
poojawa.flags.state = "caught"; |
|
|
|
return ["You stumbled forwards and into Poojawa's grasp. She grips you with both hands, pulling you in close and stuffing your muzzle into her faintly-scented bosom. You squirm and struggle, but can do little as she pulls you away from the noisy bar and into a secluded alcove. \"Shhh, darling,\" she murmurs, clicking her tongue at your muffled protests."]; |
|
|
|
}, |
|
|
|
requirements: [ |
|
|
|
function(poojawa, player) { |
|
|
|
return poojawa.flags.state == "beckon"; |
|
|
|
}, |
|
|
|
function(poojawa, player) { |
|
|
|
return poojawa.flags.distance <= 0; |
|
|
|
} |
|
|
|
], |
|
|
|
priority: 2, |
|
|
|
weight: function(poojawa, player) { return 1; } |
|
|
|
}; |
|
|
|
} |