ContentAtomFucking.ts 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. ///<reference path="../ContentAtom.ts"/>
  2. ///<reference path="../ContentNounSimple.ts"/>
  3. /**
  4. * This atom should be used in place of the default atom when handling Fucking.
  5. */
  6. class ContentAtomFucking extends ContentAtom {
  7. /**
  8. * Only one of the following markers appears at once. They mean the style of what is going on.
  9. */
  10. public static GENTLE = new ContentNounSimple("GENTLE");
  11. public static ROUGH = new ContentNounSimple("ROUGH");
  12. /**
  13. * These signify a state. If Pentrating and Removing appear together he probably insta-cummed and is already retreating in shame.
  14. */
  15. public static PENETRATING = new ContentNounSimple("PENETRATING");
  16. public static REMOVING = new ContentNounSimple("REMOVING");
  17. /**
  18. * These signify a state. They'll usually appear all at once, but on rare cases some NPCs will have prolonged CUM_START before CUMMING, or last multiple turns on CUMMING, etc.
  19. */
  20. public static CUM_START = new ContentNounSimple("CUM_START");
  21. public static CUMMING = new ContentNounSimple("CUMMING");
  22. public static CUM_END = new ContentNounSimple("CUM_END");
  23. /**
  24. * These signify the style if any of the above CUMMING is happening. Probably never going to show both at once, since atoms deal with a single stick/hole combo, but I guess it's technically possible for some rare enemies?
  25. */
  26. public static CUM_INSIDE = new ContentNounSimple("CUM_INSIDE");
  27. public static CUM_OUTSIDE = new ContentNounSimple("CUM_OUTSIDE");
  28. /**
  29. * These signify the current stance of the Fucked. In general you can assume that if standing, Vagina/Mouth = Fucker is in front, otherwise is behind, etc. We don't handle the fucker position separatedly. Maybe we should? No idea.
  30. */
  31. public static STANDING = new ContentNounSimple("STANDING");
  32. public static ALLFOURS = new ContentNounSimple("ALLFOURS");
  33. public fucked : any;
  34. public fucker : any;
  35. public hole : any;
  36. public stick : any;
  37. public markers : ContentAtom = new ContentAtom();
  38. constructor () {
  39. super();
  40. }
  41. public setFucked (fucked : any) {
  42. this.fucked = fucked;
  43. return this;
  44. }
  45. public setFucker (fucker : any) {
  46. this.fucker = fucker;
  47. return this;
  48. }
  49. public setHole (hole : any) {
  50. this.hole = hole;
  51. return this;
  52. }
  53. public setStick (stick : any) {
  54. this.stick = stick;
  55. return this;
  56. }
  57. public addMarker (...markers : Array<any>) {
  58. this.markers.addNoun(...markers);
  59. return this;
  60. }
  61. public compareAgainst (other : ContentAtom) {
  62. if (other instanceof ContentAtomFucking) {
  63. return (
  64. ContentAtom.compareNoun(this.fucked, other.fucked) &&
  65. ContentAtom.compareNoun(this.fucker, other.fucker) &&
  66. ContentAtom.compareNoun(this.hole, other.hole) &&
  67. ContentAtom.compareNoun(this.stick, other.stick) &&
  68. this.markers.compareAgainst(other.markers)
  69. );
  70. }
  71. return false;
  72. }
  73. public getAtomPriority () {
  74. return (
  75. ContentAtom.weightNoun(this.fucked) +
  76. ContentAtom.weightNoun(this.fucker) +
  77. ContentAtom.weightNoun(this.hole) +
  78. ContentAtom.weightNoun(this.stick) +
  79. this.markers.getAtomPriority()
  80. );
  81. }
  82. }