2024-10-29 01:07:34 +00:00
extends Module
2024-11-04 00:37:20 +00:00
class_name IssixModule
2024-10-29 01:07:34 +00:00
func getFlags ( ) :
return {
2024-11-04 00:37:20 +00:00
" Issix_Introduced " : flag ( FlagType . Bool ) ,
2024-10-29 01:07:34 +00:00
" Pets_Introduced " : flag ( FlagType . Bool ) ,
" Score_Explored " : flag ( FlagType . Number ) ,
" Quest_Status " : flag ( FlagType . Number ) ,
2024-11-04 00:37:20 +00:00
" Quest_Rejected_By_Issix " : flag ( FlagType . Number ) ,
2024-10-29 01:07:34 +00:00
" Azazel_Catnip_talked " : flag ( FlagType . Bool ) ,
" Azazel_Catnip_found " : flag ( FlagType . Bool ) ,
2024-10-30 21:25:47 +00:00
" Azazel_Catnip_taken_today " : flag ( FlagType . Bool ) ,
2024-11-05 23:23:15 +00:00
" Azazel_Affection_given " : flag ( FlagType . Number ) ,
2024-11-23 00:31:31 +00:00
" Lamia_Times_Helped " : flag ( FlagType . Number ) ,
2024-11-27 22:55:35 +00:00
" Hiisi_Affection " : flag ( FlagType . Number ) ,
2024-11-23 00:31:31 +00:00
" Helped_Lamia_With_Drawings_Today " : flag ( FlagType . Bool ) ,
2024-10-31 00:36:55 +00:00
" Quest_Bonked " : flag ( FlagType . Bool ) ,
2024-11-01 00:34:49 +00:00
" Quest_Wait_Another_Day " : flag ( FlagType . Bool ) ,
" Activated_Cabinets " : flag ( FlagType . Dict ) ,
2024-11-01 22:00:58 +00:00
" Medical_Peeked " : flag ( FlagType . Bool ) ,
2024-11-10 01:10:02 +00:00
" QuestionnaireQ1 " : flag ( FlagType . Bool ) , # Creatures possess a soul
2024-11-01 00:34:49 +00:00
" QuestionnaireQ2 " : flag ( FlagType . Bool ) ,
" QuestionnaireQ3 " : flag ( FlagType . Text ) ,
2024-11-01 22:00:58 +00:00
" QuestionnaireQ4 " : flag ( FlagType . Bool ) ,
" QuestionnaireQ5 " : flag ( FlagType . Text ) ,
" QuestionnaireQ6 " : flag ( FlagType . Bool ) ,
" QuestionnaireQ7 " : flag ( FlagType . Bool ) ,
" QuestionnaireQ8 " : flag ( FlagType . Text ) ,
" QuestionnaireQ9 " : flag ( FlagType . Bool ) ,
" QuestionnaireQ10 " : flag ( FlagType . Number ) ,
2024-11-05 23:23:15 +00:00
" QuestionnaireQ11 " : flag ( FlagType . Bool ) ,
" Lamia_Is_Hungry " : flag ( FlagType . Bool ) ,
" Azazel_Sky_Response " : flag ( FlagType . Bool ) ,
" Received_Portrait_From_Lamia " : flag ( FlagType . Bool ) ,
" Placed_Portrait_In_Cell " : flag ( FlagType . Bool ) ,
2024-11-07 16:03:20 +00:00
" Hissi_RPS_data " : flag ( FlagType . Dict ) ,
2024-11-27 22:55:35 +00:00
" Hiisi_Name_Helped " : flag ( FlagType . Bool ) ,
2024-11-11 22:11:30 +00:00
" Shared_Marshmallows " : flag ( FlagType . Bool ) ,
2024-11-14 22:23:10 +00:00
# Slavery related
" PC_Enslavement_Role " : flag ( FlagType . Number ) ,
" PC_Enslavement_Noncon " : flag ( FlagType . Bool ) ,
2024-11-17 20:48:47 +00:00
" PC_Training_Level " : flag ( FlagType . Number ) ,
" Issix_Mood " : flag ( FlagType . Number ) ,
2024-11-11 22:11:30 +00:00
" Todays_Bred_Slave " : flag ( FlagType . Text ) ,
2024-11-14 22:23:10 +00:00
" Progression_Day_Next " : flag ( FlagType . Number ) ,
" Last_Day_Visited_Master " : flag ( FlagType . Number ) ,
" Misc_Slavery_Info " : flag ( FlagType . Dict ) ,
2024-11-19 21:36:49 +00:00
" Progression_Points " : flag ( FlagType . Number ) ,
2024-11-23 00:31:31 +00:00
" Taught_To_Use_Bowl " : flag ( FlagType . Bool ) ,
" Issix_Branded_PC " : flag ( FlagType . Bool )
2024-10-29 01:07:34 +00:00
}
func _init ( ) :
2024-11-04 00:37:20 +00:00
id = " IssixModule "
2024-10-29 01:07:34 +00:00
author = " Frisk "
events = [
2024-11-10 01:10:02 +00:00
" res://Modules/IssixModule/Events/EngRoomClosetEvent.gd " ,
" res://Modules/IssixModule/Events/EventTileOnEnter.gd " ,
" res://Modules/IssixModule/Events/GreenhouseCatnipEvent.gd " ,
" res://Modules/IssixModule/Events/IssixQuestionnaireEvent.gd " ,
" res://Modules/IssixModule/Events/MedicalPeekEvent.gd " ,
" res://Modules/IssixModule/Events/PetWalkExamEvent.gd " ,
2024-11-23 00:31:31 +00:00
" res://Modules/IssixModule/Events/PlayerCellModifierEvent.gd " ,
" res://Modules/IssixModule/Events/CornerPriorityEvent.gd " ,
" res://Modules/IssixModule/Events/SlaveryIntroEvent.gd "
2024-10-29 01:07:34 +00:00
]
scenes = [
2024-11-10 01:10:02 +00:00
" res://Modules/IssixModule/Scenes/EngRoomScene.gd " ,
" res://Modules/IssixModule/Scenes/GreenhouseCatnipStealScene.gd " ,
" res://Modules/IssixModule/Scenes/IssixQuestionnaireScene.gd " ,
" res://Modules/IssixModule/Scenes/IssixTalkMain.gd " ,
" res://Modules/IssixModule/Scenes/MedicalPeekScene.gd " ,
" res://Modules/IssixModule/Scenes/NoPetsTalkMain.gd " ,
" res://Modules/IssixModule/Scenes/PetsTalkMain.gd " ,
" res://Modules/IssixModule/Scenes/PetWalkExamScene.gd " ,
2024-11-23 00:31:31 +00:00
" res://Modules/IssixModule/Scenes/PlayerCellModifierScene.gd " ,
" res://Modules/IssixModule/Scenes/Overwrites/EatInCanteenScene.gd " ,
" res://Modules/IssixModule/Scenes/SlaveryFirst/SlaveryIntroContScene.gd " ,
2024-11-26 00:04:40 +00:00
" res://Modules/IssixModule/Scenes/SlaveryFirst/SlaveryTrainingBowlScene.gd " ,
2024-11-30 19:10:18 +00:00
" res://Modules/IssixModule/Scenes/SlaveryFirst/SlaveryBrandingScene.gd " ,
" res://Modules/IssixModule/Scenes/CaughtInTheCloset.gd "
2024-10-29 01:07:34 +00:00
]
characters = [
2024-11-10 01:10:02 +00:00
" res://Modules/IssixModule/Characters/AzazelCharacter.gd " ,
" res://Modules/IssixModule/Characters/HiisiCharacter.gd " ,
" res://Modules/IssixModule/Characters/IssixCharacter.gd " ,
" res://Modules/IssixModule/Characters/LamiaCharacter.gd "
2024-10-29 01:07:34 +00:00
]
worldEdits = [
2024-11-04 00:37:20 +00:00
" res://Modules/IssixModule/IssixWorldEdit.gd "
2024-10-29 01:07:34 +00:00
]
items = [
2024-11-30 19:10:18 +00:00
" res://Modules/IssixModule/Items/CatnipItem.gd " , " res://Modules/IssixModule/Items/ClosetMap.gd " , " res://Modules/IssixModule/Items/CookieItem.gd " # I just felt like this game needs more variety in items, even if by themselves they don't do much
2024-10-29 01:07:34 +00:00
]
quests = [
2024-11-04 00:37:20 +00:00
" res://Modules/IssixModule/IssixPetQuest.gd "
2024-10-29 01:07:34 +00:00
]
2024-11-23 00:31:31 +00:00
GlobalRegistry . registerLustTopicFolder ( " res://Modules/IssixModule/InterestTopics/ " )
2024-11-30 19:10:18 +00:00
GlobalRegistry . registerSkinsFolder ( " res://Modules/IssixModule/Skins/ " )
GlobalRegistry . registerStatusEffectFolder ( " res://Modules/IssixModule/StatusEffects/ " )
GlobalRegistry . sortRegisteredStatusEffectsByPriority ( )
GlobalRegistry . registerMapFloorFolder ( " res://Modules/IssixModule/Floors/ " )
2024-11-23 00:31:31 +00:00
2024-11-05 23:23:15 +00:00
# External
# "res://Scenes/ParadedOnALeashScene.gd"
# "res://Game/World/Floors/Closet.gd"
# "res://Game/World/Floors/Closet.tscn"
2024-11-14 22:23:10 +00:00
2024-11-17 20:48:47 +00:00
static func addSceneToWatched ( scene : String ) :
2024-11-26 00:04:40 +00:00
var scenes = GM . main . getModuleFlag ( " IssixModule " , " Misc_Slavery_Info " , { " scenes_seen " : [ ] } )
2024-11-17 20:48:47 +00:00
scenes [ " scenes_seen " ] . append ( scene )
GM . main . setModuleFlag ( " IssixModule " , " Misc_Slavery_Info " , scenes )
static func addIssixMood ( mood : int ) :
2024-11-23 00:31:31 +00:00
GM . main . setModuleFlag ( " IssixModule " , " Issix_Mood " , clamp ( GM . main . getModuleFlag ( " IssixModule " , " Issix_Mood " , 50 ) + mood , 0 , 100 ) )
2024-11-14 22:23:10 +00:00
static func getPlayerRole ( ) :
return " pet " if GM . main . getModuleFlag ( " IssixModule " , " PC_Enslavement_Role " , 1 ) == 1 else " prostitute "
2024-11-05 23:23:15 +00:00
2024-10-29 01:07:34 +00:00
func resetFlagsOnNewDay ( ) :
2024-11-04 00:37:20 +00:00
GM . main . setModuleFlag ( " IssixModule " , " Azazel_Catnip_taken_today " , false )
GM . main . setModuleFlag ( " IssixModule " , " Activated_Cabinets " , { } )
GM . main . setModuleFlag ( " IssixModule " , " Quest_Wait_Another_Day " , false )
2024-11-11 22:11:30 +00:00
GM . main . setModuleFlag ( " IssixModule " , " Todays_Bred_Slave " , RNG . pick ( [ ' azazel ' , ' pc ' , ' hiisi ' ] ) )
2024-11-17 20:48:47 +00:00
if GM . main . getModuleFlag ( " IssixModule " , " Helped_Lamia_With_Drawings_Today " ) != null :
GM . main . setModuleFlag ( " IssixModule " , " Helped_Lamia_With_Drawings_Today " , false )
addIssixMood ( RNG . randi_range ( - 7 , 7 ) )