1 package org
.sevenchan
.dongs
3 import org
.sevenchan
.dongs
.creature
.Player
;
4 import org
.sevenchan
.dongs
.screens
.InventoryScreen
;
5 import org
.sevenchan
.dongs
.towns
.TownBanala
;
6 import org
.sevenchan
.dongs
.towns
.TownBarn
;
7 import org
.sevenchan
.dongs
.towns
.WildsHaaraWastes
;
8 import org
.sevenchan
.dongs
.towns
.WildsHorusSpine
;
13 public class Town
extends Screen
15 public var text
:String = "";
17 public static var knownTowns
:Object = { };
24 public var ID
:String = "";
29 public var name
:String = "";
32 * IDs of connected towns to list when exiting.
34 public var connectedTowns
:Array = [];
37 * Is this town actually a Wilds?
39 public var isWilds
:Boolean = false;
42 * Does this town have free room and board?
44 public var freeRest
:Boolean = false;
47 * What kinds of creatures inhabit this town? (Hostile and otherwise)
49 public var inhabitants
:Array = [];
51 private var menu
:String = "main";
53 public static function setup
():void {
56 banala
: new TownBanala
(),
57 haara
: new WildsHaaraWastes
(),
58 horus
: new WildsHorusSpine
()
62 public function Town
()
64 this.appearanceButton
= true;
65 this.debugMenuButton
= true;
66 this.exportGameButton
= false;
67 this.loadOrSaveButton
= true;
68 this.newGameButton
= false;
69 this.selectPerkButton
= false;
74 // Explore, Shop, Rest (10G), Leave, Fap
75 override public function processButtonPress
(id
:int):Boolean
80 if (!main
.player
.getExplored
(ID
)) {
82 main
.player
.setExplored
(ID
);
87 setButton
(0, "Explore");
93 setButton
(2, "Rest (10G)");
95 setButton
(3, "Leave");
96 setButton
(4, "Masturbate");
97 setButton
(5, "Inventory");
105 var cs
:Number = MathUtils
.rand
(0, 3);
106 trace
("COMBAT CHANCE SAMPLE " +cs
);
107 if(cs
==0 && inhabitants
.length
>0) {
108 var c
:Creature
= getRandomInhabitant
();
109 c
._level
= Math.max
(1, main
.player
.level
+ MathUtils
.rand
( -2, 2));
110 c
._strength
= Math.max
(1, main
.player
.strength
+ MathUtils
.rand
( -2, 2));
112 c
.initialGenderSetup
();
113 if (c
.getHostile
(main
.player
)) {
114 main
.startCombat
(this, c
);
117 var encounter
:Boolean=c
.onEncounter
(main
.player
)
126 text
= "Not implemented yet.";
132 if (main
.player
.gold
>= 10 || freeRest
) {
135 main
.player
.gold
-= 10;
137 main
.player
.HP
= main
.player
.maxHP
;
144 setButton
(NEXT_BUTTON
, "Next");
151 setButton
(0, "CANCEL");
152 text
= "<p>You peer at the roadsigns in the middle of town and try to make out the destinations.</p>";
153 if (connectedTowns
.length
== 0) {
154 text
+= "<p>However, you cannot make them out (bug; connectedTowns=[]).</p>";
157 for (var i
:int = 0; i
< connectedTowns
.length
; i
++) {
158 var t
:Town
= Town
.knownTowns
[connectedTowns
[i
]];
159 setButton
(i
+ 1, t
.ID
);
161 text
+= "<li><b>" + t
.ID
+ "</b> - " + t
.name
+ " (Wilds)</li>";
163 text
+= "<li><b>" + t
.ID
+ "</b> - " + t
.name
+ "</li>";
171 setButton
(NEXT_BUTTON
, "NEXT");
172 if(main
.player
.dicks
.length
>0 || main
.player
.vaginas
.length
>0) {
173 text
= "<h2>Masturbate</h2><p>Blah blah blah, you blast cum everywhere or something.</p>";
174 main
.player
.lust
= 0;
176 text
= "<p>You look at your groin, and find nothing there for fap with.</p>";
182 main
.showInventory
();
191 processButtonPress
( -1);
195 processButtonPress
( -1);
198 main
.setTown
(knownTowns
[connectedTowns
[id
- 1]]);
209 private function getRandomInhabitant
():Creature
{
210 return MathUtils
.getRandomEntry
(inhabitants
);
213 override public function getScreenText
():String
219 * omg new town what's it like
221 public function onRevelation
():void { text
= "REVELATION"; }
223 public function onExplore
(bumpedInto
:Creature
):void { text
= "EXPLORE"; }
225 public function onEnter
():void { text
= "ENTER"; }
227 public function onFailedRest
():void { text
= "FAILEDREST"; }
228 public function onSuccessfulRest
():void { text
= "SUCCESSFULREST"; }