unkwntech

Kitteh.cs

Mar 21st, 2013
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.85 KB | None | 0 0
  1. using System;
  2. using System.Reflection;
  3.  
  4. namespace Kittehz
  5. {
  6.     class Kitteh : SingletonBase, IKillable, IDisposable, IEdible, IFluffy, ITastey, IClaws, ICrusty, IComparable, IZombiable
  7.     {
  8.         internal enum Status : byte
  9.         {
  10.             Alive,
  11.             Dead,
  12.             Schroedingered,
  13.             InSuperPosition //Far less perverted than it sounds
  14.         }
  15.        
  16.         internal enum MeowTypes : byte
  17.         {
  18.             Angry,
  19.             Happy,
  20.             Horny,
  21.             Barfing
  22.         }
  23.        
  24.         internal enum Gender
  25.         {
  26.             Male,
  27.             Female,
  28.             Uhhhhhh,
  29.             Shrug
  30.         }
  31.        
  32.         internal enum Sex
  33.         {
  34.             Yes,
  35.             No,
  36.             Please,
  37.             NotUntilAfterDrinks,
  38.             What
  39.         }
  40.        
  41.         internal enum SexualOrientation
  42.         {
  43.             Straight,
  44.             Rainbow,
  45.             Confused,
  46.             SomwhereInBetween,
  47.             Fluid
  48.         }
  49.        
  50.         internal enum Moods
  51.         {
  52.             Happy,
  53.             Angry
  54.         }
  55.        
  56.         public Moods Mood { get{ return Moods.Angry; } }
  57.        
  58.         public Status LifeStatus { get; private set; }
  59.        
  60.         private int _lives = 9;
  61.        
  62.         public int Lives
  63.         {
  64.             get{ return this._lives;}
  65.             set
  66.             {
  67.                 if(value == 0)
  68.                     this.Kill();
  69.                 this._lives = value;
  70.             }
  71.         }
  72.                
  73.         public void Kill()
  74.         {
  75.             //Impliments Magic
  76.            
  77.             if(this.Lives == 0)
  78.             {
  79.                 this.Dispose(Trash.Can.AtCurb);
  80.                 return;
  81.             }  
  82.              
  83.             this.Lives--;      
  84.             this.LifeStatus = Status.Dead;
  85.         }
  86.        
  87.         public bool IsZombie
  88.         {
  89.             get
  90.             {
  91.                 return (this.Lives <= 0);
  92.             }
  93.         }
  94.        
  95.         public event EventHandler<MeowingEventArgs> Meowing;
  96.        
  97.         public void Meow(MeowType type, double count = Math.Epsilon)
  98.         {
  99.             for(int i = 0; i < count; i++)
  100.             {
  101.                 //ToDo, murder idiot who wrote this
  102.                 //tODo fuck oFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  103.                 // TODID LOLOLOLOL
  104.                 //this.Meow(type); // you heard me
  105.                 if (Meowing != null)
  106.                     Meowing(this, new MeowingEventArgs());
  107.             }
  108.         }
  109.        
  110.         public static operator implicit(Pussy pussy)
  111.         {
  112.             if (this.LifeStatus == Status.Alive)
  113.                 return new Pussy() { Shaved = false};
  114.                
  115.            
  116.             return new BaldPussy();
  117.         }
  118.        
  119.         public void ExposeToRadiation(bool IsObserved)
  120.         {
  121.             if (!IsObserved)
  122.                 this.LifeStatus = Status.Schroedingered;
  123.             else
  124.                 this.Lives--;
  125.         }
  126.        
  127.         public virtual bool Eat(IEdible item)
  128.         {
  129.             //WARNING: BEFORE YOU EDIT THIS METHOD YOU MUST VIEW http://www.youtube.com/watch?v=NzgfGhqQ4KQ
  130.        
  131.             //ToDo: create user group to decide if cats can eat other cats
  132.             // Current votes: Yes: 42 No: -88
  133.             if (item.GetType() == this.GetType() && !Starving)
  134.                 throw new CannibalismException();
  135.         }
  136.        
  137.         public Hairball GetHairball()
  138.         {
  139.         }
  140.        
  141.         public bool HaveRelations(Kitteh partner)
  142.         {
  143.             if(this.Name == "Bill Clinton")
  144.                 Queue.Add(Denial.SexualRelations("That Kitteh");
  145.                
  146.             if (partner is FatKitteh)
  147.                 throw new TooFatToPenetrateException();
  148.            
  149.             if(this.Sex != Sex.Yes ||
  150.                 this.Sex != Sex.Please &&
  151.                 this.SusceptibilityToRoofies < 5 ||
  152.                 !Rape.IsLegalInThisCountry(ThreadCulture.GetCurrentCulture()) &&
  153.                 !this.HasExperiementedWithAlcohol &&
  154.                 !this.IsHighAsAKite)
  155.             {
  156.                 throw new ImAnIdiotException("Kill Me NoW!!!!");
  157.             }
  158.                
  159.             if(this.Gender == partner.Gender && this.SexualOrientation == SexualOrientation.Straight)
  160.                 throw new RickSantorumSaysNotPermittedByTheBibleException("Hallelujah!");
  161.  
  162.         }
  163.        
  164.         public void Pet()
  165.         {
  166.             if ((new Random()).Next()%3 != 0)
  167.             {
  168.                 using(Owner owner = this.GetOwner())
  169.                 {
  170.                     this.Scratch(owner);
  171.                 }
  172.             }
  173.             else
  174.             {
  175.                 if((new Random()).Next()%2929283 == 0)
  176.                 {
  177.                     Purr();
  178.                 }
  179.             }
  180.         }
  181.        
  182.         public void Scratch(ICreature target)
  183.         {
  184.             if(target.Inventory.Contains(Weapons.Katana))
  185.                 throw new EatenByGrueException();
  186.                
  187.             this.PrepClaws();
  188.             this.ChooseTarget(target.Eyes | target.Groin);
  189.             try
  190.             {
  191.                 while(!target.RenderedUseless)
  192.                 {
  193.                     target.Attack();
  194.                 }
  195.             }
  196.             catch(BoredException boredEx)
  197.             {
  198.                 this.ChooseTarget(Environment.CarboardBox);
  199.                 this.SetActivity(Clean.Self);
  200.             }
  201.         }
  202.     }
  203.    
  204.     class FatKitteh : Kitteh
  205.     {
  206.         public override bool Eat(IEdible item)
  207.         {
  208.             return true;
  209.         }
  210.        
  211.     }
  212. }
  213.  
  214. public abstract class Hairball
  215. {
  216. }
  217.  
  218. public class StickyHairball : Hairball
  219. {
  220. }
  221.  
  222. public class OldHairball : Hairball
  223. {
  224. }
  225.  
  226. public class WetNastyHairball : Hairball
  227. {
  228. }
Advertisement
Add Comment
Please, Sign In to add comment