<>> Succubus Heart <<>
  >  Source Notes  <
(This document holds source information)

- Creator Notes -

Fix : Specialty Stone doesn't have a notification when consumed

Addition : Add item use counters so items don't increase XP costs
Addition : Option to adjust drop rates
Addition : Spell Power Passive
Addition : NPC succubus support

Enable : Player can be drained
Enable : NPC can drain

Hidden SuH_SETclearactor ; Clears visual arrows from the actor (Use SetVariable in-game - Can cause errors with effects and what-not)

Reminder - Focus Shot [Hate] is tagged as 'drain' in code

Balancer Code :
	if (X=Y) K = Math.Floor(Z*0.5)
		if ((K*2) =Z) X -= K , Y -= K
		else  X -= K+1 , Y -= K
	elseif (X>Y) J = X-Y , K = Math.Floor((Z-J)*0.5)
		if ((K*2) = Z-J) X -= K+J , Y -= K
		else  X -= K+J+1 , Y -= K
	elseif (Y>X) J = Y-X , K = Math.Floor((Z-J)*0.5)
		if ((k*2) = Z-J) X -= K , Y -= K+J
		else  X -= K+1 , Y -= K+J
		
File Structure Notes :
	MCM Blank Page Cover - interface/SuH/SuH_cover.swf

- Naming Conventions -

SuH / suh
	all Succubus Heart objects will prefix with this to ensure easy finding and reduce chances of overlapping with other mods.
ent/ and end/
	These are nodes I use in notepad++ and other text editors to create clamps for easy navigation

.A.    ; Active
.E.    ; Effect
.S.    ; Script
.sex.  ; Sex Effect
.spell.; Succubus Spell
.pass. ; Succubus Passive
.T.    ; Spell Trigger
.SET.  ; Configurable Setting
.NPC.  ; Non-Playable Character
.PC.   ; Player Character
.PCS.  ; Player Character Stat
.dyna. ; Dynamic Script Element
.anim. ; Animation Event
.ing.  ; Ingredient
.com.  ; Common Use / General Use
.stat. ; Status State

r. ; Reference
v. ; Variable / Object
s. ; Script
f. ; Function

Act ; Any animation triggered with SexLab
Status ; Health / Magicka / Stamina

PC Mastery ; When the player is considered the Aggressor
PC Training ; When the player is considered Consentual
PC Submit ; When the player is considered the Victim
NPC Attacker ; When the NPC is considered the Aggressor
NPC Consent ; When the NPC is considered Consentual
NPC Victim ; When the NPC is considered the Victim

+ Quests +
	SuH_Main ; Handles MODupdate and primary animation triggers
		r. PlayerRef ; Ref. Player
		s. SuH_Main ; The Quest Script
			f. MODupdate ; Compares MODversion and updates the mod
			f. anim_NPC_Start ; Triggers when an NPC starts an act
			f. anim_NPC_Orgasm ; Triggers when an NPC orgasms
			f. anim_NPC_End ; Triggers when an NPC act ends
			f. anim_PC_Start ; Triggers when the PC starts an act
			f. anim_PC_Orgasm ; Triggers when the PC orgasms
			f. anim_PC_End ; Triggers when the PC act ends
		s. SuH_Main_Player ; On playerLoad run's update script
			s. SuH_Main ;ref
	SuH_MCM ; Creates and Handles the MCM
		r. PlayerRef ; Ref. Player
		s. SuH_MCM ; Quest Script
			f. OnConfigInit ; Runs initial function
				a. Pages ; Determines MCM Page # and Names
	SuH_Fun ; Handles Global Functions
		s. SuH_Fun ; Quest Script
			f. XPcalc ; Calculates XP gained
				(string aPreset, float aMOD, int XPearn, float lvlS, bool dReport)
				aPreset ; Effect Preset and Define (Used by default effects)
					PCmastery ; Mastery Act
					PCtraining ; Training Act
					PCsubmit ; Submit Act
					PCsperm ; Sperm Consume
					PCmilk ; Milk Consume
					0 ; Disable
				aMOD ; Calculates an added percentage gain, will be overwritten by presets (Adds to inherited XPgain value)
				XPearn ; Sets XP earned, when using a preset this value adds to the default amount (set to 0 to use default)
				lvlS ; XPearn added per-character level, will be overwritten by presets (Set to 0 to disable)
				dReport ; Sends Notification for the player based on gain
					TRUE ; Send Report
					False ; Don't Send Report
			f. STATcalc ; Calculates Stats gained
				(Actor eChar,bool PCin, string aPreset,string Stat, bool drainC,float aMOD,float aEffect,bool dReport)
				eChar ; Character to effect
				PCin ; Is Player Involved?
					TRUE ; Player is involved
					FALSE ; Player is not involved
				aPreset
					PCmastery ; Mastery Act
					PCtraining ; Training Act
					PCsubmit ; Submit Act
					PCsperm ; Sperm Consume
					PCmilk ; Milk Consume
				Stat ; Stat Changed
					All ; Change Health, Magicka, Stamina
					Health ; Change Health
					Magicka ; Change Magicka
					Stamina ; Change Stamina
				drainC ; Is this a stat drain?
					TRUE ; Values will decrease stats
					FALSE ; Values will increase stats
				aMOD ; Calculates an added percentage gain or loss
				aEffect ; Overrides absorption/stat effects (set to 0 to use default)
				dReport ; Sends Notification for the player based on gain
					TRUE ; Send Report
					False ; Don't Send Report
			f. ANIMcalc ; Used to start animations through Succubus Heart (Applies gender locks)
				(string aPreset, actor[] sentActor, actor victimActor=none)
				aPreset ; Sets different modes for sorting
					0 ; Disabled
					Combat ; Used for Combat Seduction (inactive)
					Seduction ; Used for Seduction Spells (inactive)
				sentActor ; Array of actors in the act
				victimActor ; Actor that is considered victim (optional)
	SuH_SuQuest ; Handles Character Specific Succubus Effects not tied to spells
+ Common Scripts +
	Dynamic Scripts
		SuH_dyna_active ; Applies dynamic effects to NPCS (This manages all important script)
		SuH_dyna_applying ; Applues SuH_dyna_active to NPCS
		SuH_dyna_effect ; Used as dynamic cloaking to cover the surrounding area
		SuH_dyna_player ; Applies dynamic effects to the player (This manages all important script)
+ Global Variables +
	SuH_MODupdate ; MOD version
	SuH_PCSabsorbhealth ; Health Absorption Level (Player)
	SuH_PCSabsorbmagicka ; Magicka Absorption Level (Player)
	SuH_PCSabsorbstamina ; Stamina Absorption Level (Player)
	SuH_PCSspermhealth ; Sperm Health Gain Level (Player)
	SuH_PCSspermmagicka ; Sperm Magicka Gain Level (Player)
	SuH_PCSspermstamina ; Sperm Stamina Gain Level (Player)
	SuH_PCSmilkhealth ; Milk Health Gain Level (Player)
	SuH_PCSmilkmagicka ; Milk Magicka Gain Level (Player)
	SuH_PCSmilkstamina ; Milk Stamina Gain Level (Player)
	SuH_PCScaphealth ; Health Cap (Player)
	SuH_PCScapmagicka ; Magicka Cap (Player)
	SuH_PCScapstamina ; Stamina Cap (Player)
	SuH_PCSforce ; Force Collected which converts to SP
	SuH_PCSxp ; Heart XP
	SuH_PCSsp ; Heart SP
	SuH_PCSxpgain ; XP gain multiplier
	SuH_PCSxpearn ; Base XP earn value
	SuH_PCSspearned ; Total SP earned (Spent and un-Spent)
	SuH_SETallowdrainkill ; Setting, allow stat drain to kill targets
		1 = TRUE ; Kill targets if their Health drops below 1
		0 = FALSE ; Targets won't die from drain
	SuH_PCSdesire ; Gained over time and unlocks seduction spells (consumed during acts)
	SuH_PCSstacksex ; Sex Stacks increased with sex acts
	SuH_PCSstacksperm ; Sperm stacks increased by consuming sperm
	SuH_PCSstackmilk ; Sperm stacks increased by consuming milk
	SuH_PCSstackmaxsex ; Max Sex Stack obtainable
	SuH_PCSstackmaxsperm ; Max Sperm Stacks obtainable
	SuH_PCSstackmaxmilk ; Max Milk Stacks obtainable
	SuH_SETallowmalehomo ; Allows male homosexuals within Succubus Heart
		1 = TRUE ; Homosexual animations can be triggered by Succubus Heart
		0 = FALSE ; Homosexual animations won't be triggered by Succubus Heart
	SuH_SETallowfemalehomo ; Allows female homosexuals within Succubus Heart
		1 = TRUE ; Homosexual animations can be triggered by Succubus Heart
		0 = FALSE ; Homosexual animations won't be triggered by Succubus Heart
	SuH_SETcombatseduction ; Allows Combat Seduction (combat triggered animations)
		1 = TRUE ; Hits will trigger combat seduction checks
		0 = FALSE ; Hits won't trigger combat seduction checks
	SuH_SETnpc2npchealth ;Determines Health value where combat seduction triggers below
	SuH_SETnpc2pchealth ;Determines Health value where combat seduction triggers below
	SuH_SETpc2npchealth ;Determines Health value where combat seduction triggers below
	SuH_SETconsentdrain ; Determines if consensual partners are drained
	SuH_SETdesiredrain ; Determines if Desire Drain will be in-effect
	SuH_SETdeathdrops ; Determines if characters have souls on death
+ Added Faction +
	SuH_Tracker ; Used in MODevents and dyna spells to capture animation events
+ Spells +
	SuH_sex_PCmastery
		SuH_sexE_PCmastery ; Applies PC Mastery effect
			s. SuH_sexES_PCmastery
				f. SuH_Fun.XPcalc
				f. SuH_Fun.STATcalc
	SuH_sex_PCtraining
		SuH_sexE_PCtraining ; Applies PC Traning Effect
			s. SuH_sexES_PCtraining
				f. SuH_Fun.XPcalc
				f. SuH_Fun.STATcalc
	SuH_sex_PCsubmit
		SuH_sexE_PCsubmit ; Applies PC Submit Effect
			s. SuH_sexES_PCsubmit
				f. SuH_Fun.XPcalc
				f. SuH_Fun.STATcalc
	SuH_sex_NPCattacker
		SuH_sexE_NPCattacker
			SuH_sexES_NPCattacker
	SuH_sex_NPCconsent
		SuH_sexE_NPCconsent
			SuH_sexES_NPCconsent
	SuH_sex_NPCvictim
		SuH_sexE_NPCvictim
			SuH_sexES_NPCvictim
+ ingredients +

Gameplay Objects
+ ingredients + ; Items which can appear as sex drops
	Sperm
		SuH_ing_sperm ; General Sperm  (Drops from all males)
			SuH_comE_sperm
				SuH_comES_sperm
	Breast Milk
		SuH_ing_milk ; General Milk (Drops from all females)
			SuH_comE_milk
				SuH_comES_milk
	< Vitality Stone > ; Increase all Status caps by 2
		SuH_ing_vitalitystone
			SuH_comE_vitalitystone
				SuH_comES_vitalitystone
	< Empower Stone > ; Increase XP gain by 1%
		SuH_ing_empowermentstone
			SuH_comE_empowermentstone
				SuH_comES_empowermentstone
	< Specialty Stone > ; [Grants 3 SP]
		SuH_ing_specialtystone
			SuH_comE_specialtystone
				SuH_comES_specialtystone
	Soul of Force ; [Grants 100 Force]
		SuH_ing_soulofforce
			SuH_comE_soulofforce
				SuH_comES_soulofforce
	Soul of Experience ; [Grants 250 XP]
		SuH_ing_soulofexperience
			SuH_comE_soulofexperience
				SuH_comES_soulofexperience
	Soul of Life ; [Grants 1 Health Cap]
		SuH_ing_souloflife
			SuH_comE_souloflife
				SuH_comES_souloflife
	Soul of Magic ; [Grants 1 Magicka Cap]
		SuH_ing_soulofmagic
			SuH_comE_soulofmagic
				SuH_comES_soulofmagic
	Soul of Power ; [Grants 1 Stamina Cap]
		SuH_ing_soulofpower
			SuH_comE_soulofpower
				SuH_comES_soulofpower
	Soul of Desire ; [Grants 800 Desire]
		SuH_ing_soulofdesire
			SuH_comE_soulofdesire
				SuH_comES_soulofdesire
+ Passives + ; Abilities which grant passive effects based on their leveled rank
	Perfect Orgasm ; (1000*rank)*1.8+3500 [Increases the chance of a special drop upon orgasms by 1% per rank]
		SuH_rank_perfectorgasm
	Luscious Liquids ; (1000*rank)*1.4+2000 [Sperm and Milk recovers 5 points of missing status per rank when consumed]
		SuH_rank_lusciousliquids
	Masochist ; (1000*rank)*1.35+1000 [Grants 5 Desire per rank when hit]
		SuH_rank_masochist
	Self Stacker ; (1000*rank)*1.95+3000 [Grants 1 stack per rank based on gender (m/sperm f/milk)]
		SuH_rank_selfstacker
	Value Stacker ; (1000*rank)*1.95+6200 [Increases number of stacks earned by 1 per rank]
		SuH_rank_valuestacker
	Saving Essence ; (1000*rank)*1.2+4000 [When hit below 30% Health consume up to 10 sperm/milk stacks, recovering 2 Health per rank and stack (Uses both stacks evenly)]
		SuH_rank_savingessence
	Gifted consent ; (1000*giftedconsentrank)*1.6+1400 [Grants consentual partners with 1 Health/Magicka/Stamina per rank]
		SuH_rank_giftedconsent
	Force Master ; (1000*forcemasterrank)*1.7+2000 [Decreases Force Requirment for SP by 1% per rank]
		SuH_rank_forcemaster
+ Spells + ; Spells the player can use for special effects
	Sexual Enrage ; Sexual Enrage [Base] "Forces the target to rape the caster"
		SuH_spell_sexualenrage
			SuH_spellE_sexualenrage
				SuH_spellES_sexualenrage
	Sexual Entice ; Takes the target into a consensual act
		SuH_spell_sexualentice
			SuH_spellE_sexualentice
				SuH_spellES_sexualentice
	Night's Embrace ; Fills the target's dreams with desire, forcing them to submit [Only works on Sleeping Characters]
		SuH_spell_nightsembrace
			SuH_spellE_nightsembrace
				SuH_spellES_nightsembrace
	Self Pleasure ; Gives self pleasure [Starts solo act]
		SuH_spell_selfpleasure
			SuH_spellE_selfpleasure
				SuH_spellES_selfpleasure
	Focus Shot ; (Quick Damage Spell)
		[Base] ; 500 XP *10 Magicka ("Consume 5 Max Stamina and deal 5 damage to the target")
		SuH_spell_focusshot_base
			SuH_spellE_focusshot_base
				SuH_spellES_focusshot_base
		[Love] ; 5000 XP *15 Magicka ["Consume 12 Max Stamina and deal 14 damage to the target"]
		SuH_spell_focusshot_love
			SuH_spellE_focusshot_love
				SuH_spellES_focusshot_love
		[Hate] ; 5000 XP *15 Magicka) ["Consume 12 Max Stamina and deal 6 damage to the target while absorbing 3 health"]
		SuH_spell_focusshot_drain
			SuH_spellE_focusshot_drain
				SuH_spellES_focusshot_drain
	Soul Bend ; (High Damage Spell)
		[Base] ; 700 XP *60 Magicka [Consume 10 Health and 20 Magicka to damage the target for 50 Health and reduce their Max Health by 5%]
		SuH_spell_soulbend_base
			SuH_spellE_soulbend_base
				SuH_spellES_soulbend_base
		[Love] ; 7000 XP *110 Magicka [Consume 20 Health and 25 Magicka and damage the target for 80 Health and reduce their Max Health by 10%]
		SuH_spell_soulbend_love
			SuH_spellE_soulbend_love
				SuH_spellES_soulbend_love
		[Hate] ; 7000 XP *120 Magicka [Consume 80 Health and damage the target for 50% of their current status]
		SuH_spell_soulbend_hate
			SuH_spellE_soulbend_hate
				SuH_spellES_soulbend_hate
	Intimate Touch ; (Silent Touch Spell)
		[Base] ; 600 XP *20 Magicka [Touch the target without aggression consuming up to 15 sex stacks, damaging them for 5% status per stack]
		SuH_spell_intimatetouch_base
			SuH_spellE_intimatetouch_base
				SuH_spellES_intimatetouch_base
		[Love] ; 6000 XP *30 Magicka [Touch the target without aggression consuming up to 9 sex stacks, damaging them for 10% status per stack]
		SuH_spell_intimatetouch_love
			SuH_spellE_intimatetouch_love
				SuH_spellES_intimatetouch_love
		[Hate] ; 6000 XP *0 Magicka [Touch the target consume 20 Stamina and 20 Magicka to dropping the target's Stamina and Magicka to 0]
		SuH_spell_intimatetouch_hate
			SuH_spellE_intimatetouch_hate
				SuH_spellES_intimatetouch_hate
	Vital Drain ; (Drain Spell)
		[Base] ; 950 *50 Magicka [Consume lowest stack value from all stacks, draining 1% of the targets status per stack (Doesn't kill targets)]
		SuH_spell_vitaldrain_base
			SuH_spellE_vitaldrain_base
				SuH_spellES_vitaldrain_base
		[Love] ; 9500 *80 Magicka [Consume lowest stack value from all stacks, draining 2.5% of the targets status per stack (Doesn't kill targets)]
		SuH_spell_vitaldrain_love
			SuH_spellE_vitaldrain_love
				SuH_spellES_vitaldrain_love
		[Hate] ; 9500 *0 Magicka [Take 25% of current status and convert 80% as damage to the target]
		SuH_spell_vitaldrain_hate
			SuH_spellE_vitaldrain_hate
				SuH_spellES_vitaldrain_hate
	Cursed Blood ; (Curse Spell)
		[Base] ; 800 XP *15 Magicka[Consume 10 Magicka and 5 Stamina and curse the target to take 3 extra damage when hit for 1 minute]
		SuH_spell_cursedblood_base
			SuH_spellE_cursedblood_base
				SuH_spellES_cursedblood_base
		SuH_spellA_cursedblood_base
			SuH_spellAE_cursedblood_base
				SuH_spellAES_cursedblood_base
		[Love] ; 8000 XP [Consume 15 Magicka and 15 Stamina and curse the target to take 8 extra damage when hit for 2 minutes]
		SuH_spell_cursedblood_love
			SuH_spellE_cursedblood_love
				SuH_spellES_cursedblood_love
		SuH_spellA_cursedblood_love
			SuH_spellAE_cursedblood_love
				SuH_spellAES_cursedblood_love
		[Hate] ; 8000 XP *40 Magicka [Consume 5 sex stacks and curse the target to die after their next sex act within 10 minutes]
		SuH_spell_cursedblood_hate
			SuH_spellE_cursedblood_hate
	 Spirit Mend ; (Recovery Spell)
		[Base] ; 550 XP *0 Magicka [Consume 15 Magicka and restore 50% missing Health]
		SuH_spell_spiritmend_base
			SuH_spellE_spiritmend_base
				SuH_spellES_spiritmend_base
		[Love] ; 5500 XP *0 Magicka [Consume 20 Magicka and restore 75% Health]
		SuH_spell_spiritmend_love
			SuH_spellE_spiritmend_love
				SuH_spellES_spiritmend_love
		[Hate] ; 5500 *20 Magicka [Consume all Desire, distributing it into all status]
		SuH_spell_spiritmend_hate
			SuH_spellE_spiritmend_hate
				SuH_spellES_spiritmend_hate
		

; [][][] Fill