Add new clothing system
[18plus-7leafadventure.git] / src / org / sevenchan / dongs / creature / Manticore.as
blob9a4f72524c93da76d6224b11d7f923ea680e4049
1 package org.sevenchan.dongs.creature
3 import org.sevenchan.dongs.bodyparts.*;
4 import org.sevenchan.dongs.Creature;
5 import org.sevenchan.dongs.Item;
6 import org.sevenchan.dongs.screens.*;
8 /**
9 * http://www.monstropedia.org/index.php?title=Manticore
11 * The manticore, considered to be the most dangerous predator in Asia, has the body of a lion and a head with human.
12 * The beast is also known as the "manticora", the "mantichor", for short "manty" or by a folk etymology, even the "mantiger".
14 * Physically, the manticore was know as having the body of a red lion, the face and ears of a blue eyes human and a tail
15 * ending in a sting like that of a scorpion. The mouth contains three rows of razor-sharp teeth and poisoned spines along the
16 * tail could be shot, like arrows in any direction. The manticore was also attributed with having a voice that was the mixture
17 * of pipes and a trumpet. The beast is very swift and makes very powerful leaps. Occasionally, a manticore will possess
18 * wings of some description. Size reports range from lion-sized up to horse-sized.
20 * Shoots poisonous spines, plays tricks, etc.
22 * FINAL APPEARANCE
24 * - Lion body
25 * - Human head (3 rows of teeth)
26 * - Scorpion tails
27 * - Quadriped
29 * BEHAVIOR
31 * Likes playing tricks on people, will attack anyone with corruption > 45
33 * SEXUALITY
35 * Bisexual, will leave invitations around if it's interested.
37 * @author Harbinger
39 public class Manticore extends Creature
42 public function Manticore()
44 super();
45 legs.push(
46 BodyPartRegistry.manticore_leg,
47 BodyPartRegistry.manticore_leg
49 arms.push(
50 BodyPartRegistry.manticore_arm,
51 BodyPartRegistry.manticore_arm
53 //tails.push(
54 // BodyPartRegistry.manticore_tail
55 //);
56 skin = new Skin("manticore", "red", "furry");
57 this._assholes.push(BodyPartRegistry.human_anus);
58 this._eyes.push(BodyPartRegistry.human_blue_eye, BodyPartRegistry.human_blue_eye);
59 switch(MathUtils.rand(0, 2))
61 case 0: this._gender = Gender.MALE; break;
62 case 1: this._gender = Gender.FEMALE; break;
63 case 2: this._gender = Gender.HERM; break;
65 this._intellect = 30;
66 this._gold = MathUtils.rand(300, 400);
67 //this.abilityUseProbability = 0.01;
68 //abilities["sting"] = new Sting();
71 override public function addBreast():Breast
73 var boob:Breast = BodyPartRegistry.manticore_breast;
74 boob.size = 0;
75 _breasts.push(boob);
76 return boob;
79 override public function addDick(type:String = "default"):Penis
81 //(21:39:41) eels: giant cawk
82 //(21:39:53) Harbinger: define giant
83 //(21:40:15) eels: Tomahawk missile
84 //(21:40:23) Harbinger: ok
85 //(21:40:40) Harbinger: So he polevaults every time he runs basically
86 //(21:40:49) eels: It's part of his charm
87 var dick:Penis = BodyPartRegistry.human_penis;
88 dick.size = MathUtils.rand(100,150);
89 _dicks.push(dick);
90 return dick;
93 override public function initialGenderSetup():void
95 addBreast();
96 addBreast();
97 if (gender.hasDick)
99 this.addDick();
100 this.balls.push(
101 BodyPartRegistry.manticore_testicle,
102 BodyPartRegistry.manticore_testicle
105 if (gender.hasVag)
107 breastDelta(MathUtils.rand(0, 4),false);
108 vaginas.push(BodyPartRegistry.human_vagina);
110 super.initialGenderSetup();
113 override public function getTypeName():String
115 return "manticore";
118 override public function getHostile(subj:Creature):Boolean
120 return false;
122 override public function onEncounter(ply:Creature):Boolean
124 if (ply == null)
125 return true;
126 if(getHostile(ply))
127 return false;
129 var story:String = <![CDATA[
131 You've been moving through underbrush for hours now, and there are so many bugs in and around your person that you swear it's
132 only matter of time before they start building apartments and begin electing a mayor. None of which helps the fact that
133 you're hopelessly lost. A heavy sigh escapes your lips, and you settle onto a nearby stump to take a break.
134 </p>
136 An hour later, you wake up with a start, not remembering when or how you fell asleep. Worried, you cautiously check yourself, and
137 become even more confused when you find no unexplained injuries, marks, or stains. Well, beyond the scratches caused by moving
138 through thorny brush. You check your bag for stolen items and find nothing missing.
139 </p>
141 You do, however, find {SOMETHING RANDOM} in your pocket. You scratch your head in confusion, and then {ACTION}.
142 You swear you hear faint, tittering laughter coming from the canopy.
143 </p>
144 ]]>.toString();
145 if (ply.intellect > 40) {
146 story += <![CDATA[
148 <i>Damn Manticores.</i>
149 </p>
150 ]]>.toString();
152 var interestedObjects:Array = new Array(
153 "a small box of chocolates",
154 "a crushed rose",
155 "a limp lily",
156 "a new dildo"
158 var uninterestedObjects:Array = new Array(
159 "a large clump of red hair",
160 "a smushed glazed doughnut",
161 "a small rubber snake",
162 "a used dildo",
163 ItemRegistry.GAS_MASK
166 var objArray:Array = uninterestedObjects;
167 if (getInterested(ply))
168 objArray = interestedObjects;
170 var o:*= MathUtils.getRandomArrayEntry(objArray);
171 var repl:String = "";
172 var action:String = "";
173 if (o is String)
175 // Something useless
176 repl = o as String;
177 action = "dispose of it";
178 } else if(o is Item){
179 var i:Item = (o as Item);
180 repl = Utils.A(i.name) + " " + i.name;
181 action = "stuff it into your backpack";
183 InfoScreen.push(story.replace("{SOMETHING RANDOM}", repl).replace("{ACTION}", action));
184 return true;