From b9883cf1655b3605c36b3c7478abb5fbe8139c36 Mon Sep 17 00:00:00 2001 From: Harbinger Date: Mon, 23 May 2011 04:02:38 -0700 Subject: [PATCH] Potions added, and pink potion --- src/org/sevenchan/dongs/Ability.as | 1 + src/org/sevenchan/dongs/Creature.as | 6 ++ src/org/sevenchan/dongs/Item.as | 4 +- src/org/sevenchan/dongs/ItemRegistry.as | 17 ++++++ src/org/sevenchan/dongs/Utils.as | 10 ++++ src/org/sevenchan/dongs/ability/AbilityRegistry.as | 21 +++++++ src/org/sevenchan/dongs/ability/Instawin.as | 2 +- src/org/sevenchan/dongs/ability/Sandstorm.as | 34 +++++++++++ src/org/sevenchan/dongs/ability/Tornado.as | 41 +++++++++++++ src/org/sevenchan/dongs/bodyparts/Breast.as | 70 +++++++++++++++++++++- src/org/sevenchan/dongs/bodyparts/eye/GhostEye.as | 49 +++++++++++++++ src/org/sevenchan/dongs/creature/Ala.as | 42 +++++++++++++ src/org/sevenchan/dongs/creature/Arachnid.as | 2 +- src/org/sevenchan/dongs/creature/Demon.as | 5 ++ src/org/sevenchan/dongs/creature/Harpy.as | 3 +- src/org/sevenchan/dongs/creature/Morel.as | 3 +- src/org/sevenchan/dongs/items/PinkPotion.as | 60 +++++++++++++++++++ src/org/sevenchan/dongs/items/Potion.as | 24 ++++++++ src/org/sevenchan/dongs/towns/TownBanala.as | 14 ++--- 19 files changed, 392 insertions(+), 16 deletions(-) create mode 100644 src/org/sevenchan/dongs/ItemRegistry.as create mode 100644 src/org/sevenchan/dongs/ability/AbilityRegistry.as create mode 100644 src/org/sevenchan/dongs/ability/Sandstorm.as create mode 100644 src/org/sevenchan/dongs/ability/Tornado.as create mode 100644 src/org/sevenchan/dongs/bodyparts/eye/GhostEye.as create mode 100644 src/org/sevenchan/dongs/creature/Ala.as create mode 100644 src/org/sevenchan/dongs/items/PinkPotion.as create mode 100644 src/org/sevenchan/dongs/items/Potion.as diff --git a/src/org/sevenchan/dongs/Ability.as b/src/org/sevenchan/dongs/Ability.as index e7e88b6..c4cf126 100644 --- a/src/org/sevenchan/dongs/Ability.as +++ b/src/org/sevenchan/dongs/Ability.as @@ -7,6 +7,7 @@ package org.sevenchan.dongs */ public class Ability { + public var label:String = ""; public var name:String = ""; public var description:String = ""; diff --git a/src/org/sevenchan/dongs/Creature.as b/src/org/sevenchan/dongs/Creature.as index 5ab5ce7..fa708e6 100644 --- a/src/org/sevenchan/dongs/Creature.as +++ b/src/org/sevenchan/dongs/Creature.as @@ -5,6 +5,7 @@ package org.sevenchan.dongs import flash.net.*; import org.sevenchan.dongs.bodyparts.*; import org.sevenchan.dongs.bodyparts.asshole.Abdomen; + import org.sevenchan.dongs.bodyparts.eye.GhostEye; import org.sevenchan.dongs.creature.*; import org.sevenchan.dongs.enchantment.*; import org.sevenchan.dongs.enchantment.events.*; @@ -43,6 +44,7 @@ package org.sevenchan.dongs human: new Penis("human", 5, null, null) }, eyes: { + ghost_yellow: new GhostEye("ghost", "yellow"), human_blue: new Eye("human", "blue", "round"), human_brown: new Eye("human", "brown", "round"), human_green: new Eye("human", "green", "round"), @@ -129,6 +131,10 @@ package org.sevenchan.dongs genName(); } + public function addBoob():void { + + } + public function addEnchantment(ench:Enchantment):String { var story:String = ench.onInit(this); if(!ench.cancelAddition) diff --git a/src/org/sevenchan/dongs/Item.as b/src/org/sevenchan/dongs/Item.as index 461e93d..0e548c7 100644 --- a/src/org/sevenchan/dongs/Item.as +++ b/src/org/sevenchan/dongs/Item.as @@ -30,12 +30,14 @@ package org.sevenchan.dongs berry_white: new WhiteBerries(), harpy_tincture: new HarpyTincture(), spider_venom: new SpiderVenomSac(), - darkharpyegg: new DarkHarpyEgg() + darkharpyegg: new DarkHarpyEgg(), + potion_pink: new PinkPotion() }; } public static function findByID(id:int):Item { for each(var item:Item in Registry) { + trace(item.name, item.id); if (item.id == id) return item.copy(); } return null; diff --git a/src/org/sevenchan/dongs/ItemRegistry.as b/src/org/sevenchan/dongs/ItemRegistry.as new file mode 100644 index 0000000..2e9ba66 --- /dev/null +++ b/src/org/sevenchan/dongs/ItemRegistry.as @@ -0,0 +1,17 @@ +package org.sevenchan.dongs +{ + import org.sevenchan.dongs.items.*; + /** + * ... + * @author N3X15 + */ + public class ItemRegistry + { + public static var BERRY_WHITE:WhiteBerries = new WhiteBerries(1); + public static var HARPY_TINCTURE:HarpyTincture = new HarpyTincture(1); + public static var SPIDER_VENOM:SpiderVenomSac = new SpiderVenomSac(1); + public static var DARK_HARPY_EGG:DarkHarpyEgg = new DarkHarpyEgg(1); + public static var POTION_PINK:PinkPotion = new PinkPotion(1); + } + +} \ No newline at end of file diff --git a/src/org/sevenchan/dongs/Utils.as b/src/org/sevenchan/dongs/Utils.as index eb83c6c..a54b719 100644 --- a/src/org/sevenchan/dongs/Utils.as +++ b/src/org/sevenchan/dongs/Utils.as @@ -45,6 +45,16 @@ package org.sevenchan.dongs } return false; } + + public static function pluralize(t:String, num:Number):String { + if (num == 1) + return t; + if (t.substr(t.length - 1) == "y") { + return t.substr(0, t.length - 1) + "ies"; + } else { + return t + "s"; + } + } } } \ No newline at end of file diff --git a/src/org/sevenchan/dongs/ability/AbilityRegistry.as b/src/org/sevenchan/dongs/ability/AbilityRegistry.as new file mode 100644 index 0000000..d10b72b --- /dev/null +++ b/src/org/sevenchan/dongs/ability/AbilityRegistry.as @@ -0,0 +1,21 @@ +package org.sevenchan.dongs.ability +{ + /** + * Registered abilities + * @author N3X15 + */ + public class AbilityRegistry + { + public static var instawin:Instawin = new Instawin(); + public static var sandstorm:Sandstorm = new Sandstorm(); + public static var spore:Spore = new Spore(); + public static var tornado:Tornado = new Tornado(); + + public function AbilityRegistry() + { + + } + + } + +} \ No newline at end of file diff --git a/src/org/sevenchan/dongs/ability/Instawin.as b/src/org/sevenchan/dongs/ability/Instawin.as index 69b6cd6..1b69392 100644 --- a/src/org/sevenchan/dongs/ability/Instawin.as +++ b/src/org/sevenchan/dongs/ability/Instawin.as @@ -13,7 +13,7 @@ package org.sevenchan.dongs.ability public function Instawin() { - this.description = "Because the attack damage algoritm is fucked."; + this.description = "Because the attack damage algorithm is fucked."; this.label = "Instawin"; this.name = "Instant Win"; } diff --git a/src/org/sevenchan/dongs/ability/Sandstorm.as b/src/org/sevenchan/dongs/ability/Sandstorm.as new file mode 100644 index 0000000..16eaaa7 --- /dev/null +++ b/src/org/sevenchan/dongs/ability/Sandstorm.as @@ -0,0 +1,34 @@ +package org.sevenchan.dongs.ability +{ + import org.sevenchan.dongs.Ability; + import org.sevenchan.dongs.Creature; + import org.sevenchan.dongs.creature.Player; + import org.sevenchan.dongs.screens.InfoScreen; + + /** + * ... + * @author N3X15 + */ + public class Sandstorm extends Ability + { + + public function Sandstorm() + { + this.description = "Summons a massive sandstorm to blind your enemies."; + this.label = "Sandstrm"; + this.name = "Sandstorm"; + } + + override public function activate(activator:Creature, rapee:Creature):Boolean + { + var text:String = "

Sandstorm

"; + text += "

"+((activator is Player) ? "You summon ":"The " + activator.getTypeName() + " summons ") + " a powerful whirlwind of blinding sand and dust.

"; + rapee.speed /= 2; + text += rapee.gender.doReplace("

%CPOS% speed was cut in half!

"); + InfoScreen.push(text); + activator.mana -= 2; + return true; + } + } + +} \ No newline at end of file diff --git a/src/org/sevenchan/dongs/ability/Tornado.as b/src/org/sevenchan/dongs/ability/Tornado.as new file mode 100644 index 0000000..b531c1b --- /dev/null +++ b/src/org/sevenchan/dongs/ability/Tornado.as @@ -0,0 +1,41 @@ +package org.sevenchan.dongs.ability +{ + import org.sevenchan.dongs.Ability; + import org.sevenchan.dongs.Creature; + import org.sevenchan.dongs.screens.InfoScreen; + + /** + * ... + * @author N3X15 + */ + public class Tornado extends Ability + { + + public function Tornado() + { + this.description = "Summons a tornado to return player to barn."; + this.label = "Tornado"; + this.name = "Tornado"; + } + + override public function activate(activator:Creature, rapee:Creature):Boolean + { + var text:String = "

Tornado

"; + text += "

The ghastly spirit's face splits in two as it bares its enormous, foot-long "; + text += "shark-like teeth. Strands of ethereal saliva bridge the gaps, and a foul odor "; + text += "slams into you like a train full of corpses."; + text += "You then realize, to your sheer horror, that the Ala is smiling. "; + text += "This revelation comes far too late, as a strong wind slams into you like a brick"; + text += " wall. It picks up strength, and you have to brace your legs to keep your "; + text += "footing. Even that doesn’t hold on for long, however. You’re soon swept off "; + text += "your feet in a massive, black whirlwind. Deep, taunting laughter fills the "; + text += "wind as you’re carried away.

"; + InfoScreen.push(text); + activator.mana = 0; + rapee.HP = 0; + return true; + } + + } + +} \ No newline at end of file diff --git a/src/org/sevenchan/dongs/bodyparts/Breast.as b/src/org/sevenchan/dongs/bodyparts/Breast.as index ad77bfe..cbe9373 100644 --- a/src/org/sevenchan/dongs/bodyparts/Breast.as +++ b/src/org/sevenchan/dongs/bodyparts/Breast.as @@ -2,6 +2,7 @@ package org.sevenchan.dongs.bodyparts { import org.sevenchan.dongs.Creature; import flash.net.registerClassAlias; + import org.sevenchan.dongs.Utils; /** * ... * @author N3X15 @@ -11,17 +12,82 @@ package org.sevenchan.dongs.bodyparts registerClassAlias("P_Boob", Breast); private var _name:String; - public function Breast(name:String="") + public var size:int = 1; + public var milkMult:Number = 1; + private static var breastSizes:Array = [ + "flat", + "puffy", + "small", + "round", + "large", + "big", + "immense" + ]; + private static var breastSynonyms:Array = [ + "boob", + "booby", + "bosom", + "breast", + "doorknocker", + "knocker", + "mammary", + "teat", + "tit", + "titty" + ]; + public function Breast(name:String="",size:int=1,milkMultiplier:Number=1) { _name = name; + this.size = size; + this.milkMult = milkMultiplier; } public function get name():String { return _name; } + public function bigger():void { + if (breastSizes.length-1 == size) + return; + size++; + } + + public function smaller():void { + if (0 == size) + return; + size--; + } + + /** + * How much in need of milking these tits are. + * @return + */ + public function getMilkFeeling():String { + if (milkMult < 0.5) { + return "dried-up"; + } + if (milkMult >= 0.5 && milkMult < 1.5) { + return "perky"; + } + if (milkMult >= 1.5 && milkMult < 2) { + return "plump"; + } + if (milkMult >= 2 && milkMult < 5) { + return "slightly swollen"; + } + if (milkMult >= 5) { + return "painfully swollen"; + } + return ""; + } + public function getDescr(num:Number, host:Creature):String { - return num + " " + name + " boob"+((num>1)?"s":""); + // 2 big{, painfully swollen} tits + var text:String = num + " " + breastSizes[size]; + if (milkMult != 1) + text += ", " + getMilkFeeling(); + text += " " + name + " " + Utils.pluralize(MathUtils.getRandomEntry(breastSynonyms), num); + return text; } public function onFailedAttack(from:Creature, to:Creature):void{} public function onGoodAttack(from:Creature, to:Creature):void{} diff --git a/src/org/sevenchan/dongs/bodyparts/eye/GhostEye.as b/src/org/sevenchan/dongs/bodyparts/eye/GhostEye.as new file mode 100644 index 0000000..519c465 --- /dev/null +++ b/src/org/sevenchan/dongs/bodyparts/eye/GhostEye.as @@ -0,0 +1,49 @@ +package org.sevenchan.dongs.bodyparts.eye +{ + import org.sevenchan.dongs.bodyparts.IBodyPart; + import org.sevenchan.dongs.Creature; + import flash.net.registerClassAlias; + /** + * ... + * @author N3X15 + */ + public class GhostEye implements IBodyPart + { + registerClassAlias("EGhostEye", GhostEye); + + private var _name:String = ""; + public var color:String = ""; + + /** + * + * @param nam + * @param color + */ + public function GhostEye(nam:String="",color:String="") + { + _name = nam; + this.color = color; + } + + /* INTERFACE org.sevenchan.dongs.bodyparts.IBodyPart */ + + public function get name():String + { + return _name; + } + + public function set name(value:String):void { + _name = value; + } + + public function getDescr(num:Number, host:Creature):String + { + return num + " ghostlike " + color + " glowing eye" + ((num > 1)?"s":""); + } + + + public function onFailedAttack(from:Creature, to:Creature):void{} + public function onGoodAttack(from:Creature, to:Creature):void{} + + } +} \ No newline at end of file diff --git a/src/org/sevenchan/dongs/creature/Ala.as b/src/org/sevenchan/dongs/creature/Ala.as new file mode 100644 index 0000000..40239d1 --- /dev/null +++ b/src/org/sevenchan/dongs/creature/Ala.as @@ -0,0 +1,42 @@ +package org.sevenchan.dongs.creature +{ + import org.sevenchan.dongs.Ability; + import org.sevenchan.dongs.ability.AbilityRegistry; + import org.sevenchan.dongs.bodyparts.Eye; + import org.sevenchan.dongs.bodyparts.Gender; + import org.sevenchan.dongs.Creature; + /** + * An ala or hala (plural: ale or hali) is a demon of bad weather recorded in + * the folklore of Bulgarians, Macedonians, and Serbs. + * (Monsterpedia) + * + * @author N3X15 + */ + public class Ala extends Creature + { + + public function Ala() + { + abilities = [ + AbilityRegistry.Sandstorm, + //AbilityRegistry.Lightning, + AbilityRegistry.Tornado + ]; + abilityUseProbability = 1; + this.arms = []; + this.legs = []; + this._assholes = []; + this._balls = []; + this._breasts = []; + this._dicks = []; + this._eyes = [ + BodyPartRegistry.eyes.ghost_yellow, + BodyPartRegistry.eyes.ghost_yellow + ]; + this._gender = Gender.ASEXUAL; + this._wings = []; + } + + } + +} \ No newline at end of file diff --git a/src/org/sevenchan/dongs/creature/Arachnid.as b/src/org/sevenchan/dongs/creature/Arachnid.as index 2f24717..8ced594 100644 --- a/src/org/sevenchan/dongs/creature/Arachnid.as +++ b/src/org/sevenchan/dongs/creature/Arachnid.as @@ -145,7 +145,7 @@ package org.sevenchan.dongs.creature InfoScreen.push(gender.doReplace(text)); return true; } else if(gender.hasDick) { - text += "

TODO: Story about Arachnid w/dick droppan babies into your butt

"; + text += ""; var eggs:String = "Arachnid eggs"; for (var idx:int = 0; idx < ply.assholes.length; idx++) { if((ply.assholes[idx] as Asshole).pregnantWith==null) { diff --git a/src/org/sevenchan/dongs/creature/Demon.as b/src/org/sevenchan/dongs/creature/Demon.as index 310c077..bad71a1 100644 --- a/src/org/sevenchan/dongs/creature/Demon.as +++ b/src/org/sevenchan/dongs/creature/Demon.as @@ -86,6 +86,11 @@ package org.sevenchan.dongs.creature InfoScreen.push("

PARADIGM SHIFT

No John, you are the demons.

"); } + override public function addBoob():void + { + breasts.push(BodyPartRegistry.breasts.demon); + } + override public function onWin(ply:Creature):Boolean { if (getInterested(ply) && gender.hasDick) { diff --git a/src/org/sevenchan/dongs/creature/Harpy.as b/src/org/sevenchan/dongs/creature/Harpy.as index ffa9cf2..c094d8b 100644 --- a/src/org/sevenchan/dongs/creature/Harpy.as +++ b/src/org/sevenchan/dongs/creature/Harpy.as @@ -4,6 +4,7 @@ package org.sevenchan.dongs.creature import org.sevenchan.dongs.bodyparts.*; import flash.net.registerClassAlias; import org.sevenchan.dongs.Item; + import org.sevenchan.dongs.ItemRegistry; import org.sevenchan.dongs.items.HarpyTincture; import org.sevenchan.dongs.screens.HarpyEncounterScreen; /** @@ -61,7 +62,7 @@ package org.sevenchan.dongs.creature this.eyes = [BodyPartRegistry.eyes.harpy_dark,BodyPartRegistry.eyes.harpy_dark]; this.wings = [BodyPartRegistry.wings.harpy_dark, BodyPartRegistry.wings.harpy_dark]; this.skin = new Skin("human", "pale"); - this.inventory.push(Item.Registry.darkharpyegg); + this.inventory.push(ItemRegistry.DARK_HARPY_EGG); } this.inventory.push( new HarpyTincture(1) diff --git a/src/org/sevenchan/dongs/creature/Morel.as b/src/org/sevenchan/dongs/creature/Morel.as index 0277557..6de9b44 100644 --- a/src/org/sevenchan/dongs/creature/Morel.as +++ b/src/org/sevenchan/dongs/creature/Morel.as @@ -1,6 +1,7 @@ package org.sevenchan.dongs.creature { import org.sevenchan.dongs.*; + import org.sevenchan.dongs.ability.AbilityRegistry; import org.sevenchan.dongs.ability.Spore; import org.sevenchan.dongs.bodyparts.*; import org.sevenchan.dongs.screens.InfoScreen; @@ -38,7 +39,7 @@ package org.sevenchan.dongs.creature skin = new Skin("morel", "pasty white", "soft but dusty"); eyes = [BodyPartRegistry.eyes.human_brown, BodyPartRegistry.eyes.human_brown]; abilityUseProbability = 2; - this.abilities={spore:new Spore()}; + this.abilities={spore:AbilityRegistry.spore}; } override public function getHostile(subj:Creature):Boolean diff --git a/src/org/sevenchan/dongs/items/PinkPotion.as b/src/org/sevenchan/dongs/items/PinkPotion.as new file mode 100644 index 0000000..85f04ab --- /dev/null +++ b/src/org/sevenchan/dongs/items/PinkPotion.as @@ -0,0 +1,60 @@ +package org.sevenchan.dongs.items +{ + import org.sevenchan.dongs.bodyparts.Breast; + import org.sevenchan.dongs.Creature; + import org.sevenchan.dongs.Item; + import org.sevenchan.dongs.screens.InfoScreen; + /** + * ... + * @author N3X15 + */ + public class PinkPotion extends Potion + { + + public function PinkPotion(num:uint = 0) + { + super(num); + this.setDescr("pink, milky"); + this.id = 5; + this.name = "Pink Potion"; + this.value = 250; + } + + override public function copy():Item + { + return new PinkPotion(amount); + } + + override public function Use(host:Creature):Boolean + { + var text:String = + "

Use Pink Potion

You cautiously raise the vial to your nose, sniffing it. It " + +"smells... Well, you can't really describe it, but it makes your mouth water in " + +"anticipation. Without further hesitation, you gulp down the contents. The warm liquid " + +"rushes down your throat, tasting like warm milk but somehow sweeter. Tossing the used " + +"flask behind you without even reading the label, you stand there expectantly, waiting " + +"for the effects to take hold. After a few minutes nothing happens, and you sigh sadly. " + +" "Well, that was a waste," You grumble.

" + +"

Returning home, you step into your tent to change when you begin to feel dizzy. Holding " + +"onto a wall, you stumble over to a mirror. Your shirt feels tight against your skin, so " + +"you remove it as fast as you can. Your eyes open wide as your look at your chest and notice that your" + +host.getBreastDescr() + " have changed to become "; + if(!host.breasts.length==0) { + host.addBoob(); + host.addBoob(); + } else { + host.breasts.forEach(embiggen); + } + text += host.getBreastDescr() + ". The extra weight pulls you forward a bit, and they wobble "; + text += "slightly. You hold them in your hands and rub them gently, feeling their larger size.

"; + text += "TODO: Do something smexy. Have an idea? Drop it in the thread."; + InfoScreen.push(text); + return true; + } + + private function embiggen(obj:Object):void { + (obj as Breast).bigger(); + } + } + +} \ No newline at end of file diff --git a/src/org/sevenchan/dongs/items/Potion.as b/src/org/sevenchan/dongs/items/Potion.as new file mode 100644 index 0000000..d411471 --- /dev/null +++ b/src/org/sevenchan/dongs/items/Potion.as @@ -0,0 +1,24 @@ +package org.sevenchan.dongs.items +{ + import org.sevenchan.dongs.Item; + import org.sevenchan.dongs.Utils; + + /** + * ... + * @author N3X15 + */ + public class Potion extends Item + { + + public function Potion(num:uint = 0) + { + super(num); + } + + public function setDescr(fluidDescr:String):void { + descr = Utils.A(fluidDescr, true) + " liquid in a clear glass vial that feels warm in your hands."; + } + + } + +} \ No newline at end of file diff --git a/src/org/sevenchan/dongs/towns/TownBanala.as b/src/org/sevenchan/dongs/towns/TownBanala.as index 9aa2766..6956af2 100644 --- a/src/org/sevenchan/dongs/towns/TownBanala.as +++ b/src/org/sevenchan/dongs/towns/TownBanala.as @@ -1,12 +1,7 @@ package org.sevenchan.dongs.towns { - import org.sevenchan.dongs.Creature; - import org.sevenchan.dongs.creature.Demon; - import org.sevenchan.dongs.creature.SandNigger; - import org.sevenchan.dongs.Item; - import org.sevenchan.dongs.items.SpiderVenomSac; - import org.sevenchan.dongs.screens.ShopScreen; - import org.sevenchan.dongs.Town; + import org.sevenchan.dongs.*; + import org.sevenchan.dongs.screens.*; /** * ... @@ -30,8 +25,9 @@ package org.sevenchan.dongs.towns ]; shop = new ShopScreen(this, 10, [ - Item.Registry.berry_white.id, - Item.Registry.spider_venom.id + ItemRegistry.BERRY_WHITE.id, + ItemRegistry.SPIDER_VENOM.id, + ItemRegistry.POTION_PINK.id ]); } -- 2.11.4.GIT