1 package org
.sevenchan
.dongs
.creature
3 import flash
.net
.registerClassAlias
;
4 import org
.sevenchan
.dongs
.bodyparts
.*;
5 import org
.sevenchan
.dongs
.Creature
;
6 import org
.sevenchan
.dongs
.items
.HarpyTincture
;
7 import org
.sevenchan
.dongs
.items
.WhiteBerries
;
8 import org
.sevenchan
.dongs
.screens
.encounters
.HarpyEncounterScreen
;
10 * Two versions for our purposes.
13 * Light-hearted, kind inhabitants of the world. Only a few left.
14 * Not hostile, open to sex.
15 * Human upperbody, digitigrade, human-length birdlegs with human thighs and big talons
18 * Dark Harpy (Corrupted)
19 * "Zeus, angry that Phineas revealed too much, punished him by blinding him and
20 * putting him on an island with a buffet of food which he could never eat. The
21 * harpies always arrived and stole the food out of his hands before he could
22 * satisfy his hunger, and befouled the remains of his food." - (Wikipedia:Harpy)
23 * tl;dr zeus got mad at some faggot and made birds shit in his soup.
27 public class Harpy
extends Creature
29 registerClassAlias
("EHarpy", Human
);
31 public static var SKIN
:Skin
= new Skin
("human", "light", "smooth");
33 public var dark
:Boolean;
34 public function Harpy
(corrupt
:Boolean=false)
37 trace
("Harpy.init()");
39 height
= Math.random
()*1.5 + 5;
41 this.gender
= Gender
.FEMALE
;
42 this.sexualPreference
= SexualPreference
.BISEXUAL
;
43 this.build
= Build
.AVG
;
45 BodyPartRegistry
.human_arm
,
46 BodyPartRegistry
.human_arm
49 BodyPartRegistry
.harpy_leg
,
50 BodyPartRegistry
.harpy_leg
52 this._vaginas
.push
(BodyPartRegistry
.human_vagina
);
53 this.assholes
.push
(BodyPartRegistry
.human_anus
);
55 this.hair
= new Hair
("short, straight brown hair");
56 this.eyes
.push
(BodyPartRegistry
.harpy_light_eye
, BodyPartRegistry
.harpy_light_eye
);
57 this.wings
.push
(BodyPartRegistry
.harpy_wing
, BodyPartRegistry
.harpy_wing
);
58 this.skin
= new Skin
("human");
60 this.hair
= new Hair
("short, straight black hair");
61 this.eyes
.push
(BodyPartRegistry
.harpy_dark_eye
,BodyPartRegistry
.harpy_dark_eye
);
62 this.wings
.push
(BodyPartRegistry
.harpy_dark_wing
, BodyPartRegistry
.harpy_dark_wing
);
63 this.skin
= new Skin
("human", "pale");
64 this.inventory
.push
(ItemRegistry
.DARK_HARPY_EGG
);
71 override public function onEncounter
(ply
:Creature
):Boolean
73 if (ply
!=null && !dark
) {
74 HarpyEncounterScreen
.push
();
79 override public function getHostile
(subj
:Creature
):Boolean
84 override public function getTypeName
():String
86 return (dark
?"Dark ":"") + "Harpy";
89 override public function onLose
(ply
:Creature
):Boolean
91 // Remove all white berries.
92 for (var i
:int = 0; i
< ply
.inventory
.length
; i
++) {
93 if (ply
.inventory
[i
] is WhiteBerries
)
94 ply
.inventory
.splice
(i
, 1);
96 return super.onLose
(ply
);
99 override public function onWin
(ply
:Creature
):Boolean {