1 package org
.sevenchan
.dongs
.screens
4 import org
.sevenchan
.AdventureController
;
5 import org
.sevenchan
.dongs
.ActionNode
;
6 import org
.sevenchan
.dongs
.bodyparts
.Hair
;
7 import org
.sevenchan
.dongs
.bodyparts
.IBodyPart
;
8 import org
.sevenchan
.dongs
.Creature
;
9 import org
.sevenchan
.dongs
.enchantment
.Corruption
;
10 import org
.sevenchan
.dongs
.enchantment
.Hunger
;
11 import org
.sevenchan
.dongs
.enchantment
.Paralyze
;
12 import org
.sevenchan
.dongs
.enchantment
.WindBlessing
;
13 import org
.sevenchan
.dongs
.INode
;
14 import org
.sevenchan
.dongs
.Item
;
15 import org
.sevenchan
.dongs
.MenuNode
;
21 public class SuperStoreScreen
extends Encounter
23 private var title
:String = "";
24 private var priceoffset
:Number = 0;
25 private var dickincrement
:Number = 0;
26 private var type
:int = 0;
27 private var inventory
:Array = [];
29 public static function push
():void
31 AdventureController
.screenQueue
.write
(new SuperStoreScreen
());
34 public function SuperStoreScreen
()
37 setup
(0, 6, "WelMart");
39 for each (var item
:Item
in Item
.Registry
)
41 var i
:Item
= item
.copy
();
46 currentItem
.clearChildren
();
55 var BuyMenu
:MenuNode
= currentItem
.pushMenu
("Buy", "Buy anything. Literally.");
56 var BuyBodyParts
:MenuNode
= BuyMenu
.pushMenu
("BodyParts", "Buy any kind of body part under the sun.");
58 var ArmsMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Arms", "");
59 var AssholesMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Assholes", "");
60 var BreastsMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Breasts", "");
61 var EyesMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Eyes", "");
62 var HairMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Hair", "");
63 var LegsMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Legs", "");
64 var PenisMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Penis", "");
65 var SkinMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Skin", "");
66 var TesticleMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Testicle", "");
67 var VaginaMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Vagina", "");
68 var WingMenu
:MenuNode
= BuyBodyParts
.pushMenu
("Wing", "");
70 for each (var name
:XML in describeType
(BodyPartRegistry
)..accessor
.@name
)
72 var partname
:String = name
.toString
();
73 var bpo
:* = BodyPartRegistry
[partname
];
76 var bp
:IBodyPart
= (bpo
as IBodyPart
);
77 trace
(bp
, bp
.category
);
81 ArmsMenu
.pushAction
(bp
.name
, 250, bp
.getShortDescr
(), function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
83 ply
.arms
.push
(o
as IBodyPart
);
88 AssholesMenu
.pushAction
(bp
.name
, 100, bp
.getShortDescr
(), function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
90 ply
.assholes
.push
(o
as IBodyPart
);
95 BreastsMenu
.pushAction
(bp
.name
, 250, bp
.getShortDescr
(), function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
97 ply
.breasts
.push
(o
as IBodyPart
);
102 HairMenu
.pushAction
(bp
.name
, 250, bp
.getShortDescr
(), function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
104 ply
.hair
= bp
as Hair
;
109 LegsMenu
.pushAction
(bp
.name
, 250, bp
.getShortDescr
(), function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
111 ply
.legs
.push
(o
as IBodyPart
);
116 PenisMenu
.pushAction
(bp
.name
, 100, bp
.getShortDescr
(), function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
118 ply
.dicks
.push
(o
as IBodyPart
);
123 TesticleMenu
.pushAction
(bp
.name
, 100, bp
.getShortDescr
(), function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
125 ply
.balls
.push
(o
as IBodyPart
);
130 VaginaMenu
.pushAction
(bp
.name
, 250, bp
.getShortDescr
(), function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
132 ply
.vaginas
.push
(o
as IBodyPart
);
137 WingMenu
.pushAction
(bp
.name
, 250, bp
.getShortDescr
(), function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
139 ply
.wings
.push
(o
as IBodyPart
);
147 var BuyEnchantments
:MenuNode
= BuyMenu
.pushMenu
("Enchant", "Buy any enchantment or curse possible.");
150 BuyEnchantments
.pushAction
("Corruption", 0, "Add +10 Corruption", function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
152 ply
.addEnchantment
(new Corruption
(10));
155 BuyEnchantments
.pushAction
("Hunger(Egg)", 0, "Add hunger for Harpy Eggs.", function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
157 ply
.addEnchantment
(new Hunger
(ItemRegistry
.DARK_HARPY_EGG
.id
, 1));
161 BuyEnchantments
.pushAction
("Hunger(Gonad)", 0, "Add hunger for gonad.", function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
163 ply
.addEnchantment
(new Hunger
(ItemRegistry
.SPIDER_GONAD
.id
, 2));
167 BuyEnchantments
.pushAction
("Paralyze", 0, "Duh, 5 turns", function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
169 ply
.addEnchantment
(new Paralyze
());
173 BuyEnchantments
.pushAction
("WindBless", 1500, "Add wind blessing", function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
175 ply
.addEnchantment
(new WindBlessing
());
179 var BuyItems
:MenuNode
= BuyMenu
.pushMenu
("Items", "Any materialistic item you could dream of.");
180 for each (var ii
:Item
in Item
.Registry
)
182 BuyItems
.pushAction
(ii
.name
, ii
.value
, ii
.descr
, function(ply
:Creature
, node
:ActionNode
, o
:*):Boolean
184 ply
.addToInventory
(o
as Item
);
188 var BuyTransformations
:MenuNode
= BuyMenu
.pushMenu
("Preg", "Order up any kind of pregnancy.", needsOriface
);
192 public function needsOriface
(ply
:Creature
, node
:MenuNode
):Boolean
194 return ply
.assholes
.length
> 0 || ply
.vaginas
.length
> 0;
197 private function setup
(po
:Number, i
:Number, t
:String):void
200 this.priceoffset
= po
;
201 this.dickincrement
= i
;
204 override public function processButtonPress
(id
:int):Boolean
220 if (currentItem
.parent
== null)
227 currentItem
= currentItem
.parent
;
228 text
= currentItem
.content
;
235 var nci
:INode
= currentItem
.children
[id
- 1];
236 var ret
:Boolean = false;
237 if (nci
is ActionNode
)
239 ret
= (ActionNode
(nci
)).invoke
(this, this.main
.player
, (nci
as ActionNode
).arg
);
243 if ((MenuNode
(nci
)).canSwitchTo
(main
.player
, subject
, this))
260 override public function getScreenText
():String