70 lines
2.7 KiB
GDScript3
70 lines
2.7 KiB
GDScript3
|
const Globals = preload("res://FoxLib/Globals.gd")
|
||
|
|
||
|
static func getSkinWord() -> String:
|
||
|
var character_skin_name = Globals.ofModule("IssixModule").characterCoverage
|
||
|
return character_skin_name
|
||
|
|
||
|
|
||
|
# Undress the player of everything but unremovable restraints
|
||
|
static func undressPlayerExceptCollar(name: String):
|
||
|
for slot in GM.pc.getInventory().getEquippedItems(): # Force unequip all items, why is there getEquippedItems and getAllEquippedItems doing the same thing lol
|
||
|
var item = GM.pc.getInventory()["equippedItems"][slot]
|
||
|
if item.isRestraint() and item.getRestraintData() is RestraintUnremovable: # ignore collar
|
||
|
continue
|
||
|
GM.main.addMessage(name+" took off your "+item.getVisibleName()+".")
|
||
|
GM.pc.getInventory().unequipSlot(slot)
|
||
|
return
|
||
|
|
||
|
# Check if character is wearing PERMANENT restraints on both vagina and penis
|
||
|
static func hasPermanentChasityOnBoth(characterID: String):
|
||
|
var blocked_penis = false
|
||
|
var character = GlobalRegistry.getCharacter(characterID)
|
||
|
if character == null:
|
||
|
return null
|
||
|
if character.hasPenis():
|
||
|
var item = character.getInventory().getEquippedItem(BodypartSlot.Penis)
|
||
|
if item.isRestraint() and item.getRestraintData() is RestraintUnremovable:
|
||
|
blocked_penis = true
|
||
|
if character.hasVagina():
|
||
|
var item = character.getInventory().getEquippedItem(BodypartSlot.Vagina)
|
||
|
if item.isRestraint() and item.getRestraintData() is RestraintUnremovable:
|
||
|
if blocked_penis:
|
||
|
return true
|
||
|
blocked_penis = false
|
||
|
return blocked_penis
|
||
|
|
||
|
|
||
|
# Check if player has any restraints that would be considered unremovable or has any clothes
|
||
|
static func isPlayerSuperNaked() -> bool:
|
||
|
for slot in GM.pc.getInventory().getEquippedItems():
|
||
|
var item = GM.pc.getInventory()["equippedItems"][slot]
|
||
|
if item.isRestraint() and item.getRestraintData() is RestraintUnremovable: # ignore collar
|
||
|
continue
|
||
|
return false
|
||
|
return GM.pc.isFullyNaked()
|
||
|
|
||
|
|
||
|
# Can you believe it's not in base game? Function to learn interests in array of certain character
|
||
|
static func learnInterestOf(characterID: String, interests: Array):
|
||
|
var character = GlobalRegistry.getCharacter(characterID)
|
||
|
if character == null:
|
||
|
return
|
||
|
var lust_interests = character.getLustInterests()
|
||
|
var player_knows = lust_interests.getPlayerKnowledge()
|
||
|
for interest in interests:
|
||
|
if !lust_interests.interests.has(interest):
|
||
|
continue
|
||
|
if(!player_knows.has(interest) || player_knows[interest] != lust_interests.interests[interest]):
|
||
|
player_knows[interest] = lust_interests.interests[interest]
|
||
|
|
||
|
# Find a pet name for the player
|
||
|
static func getPlayerPetName():
|
||
|
if Species.Canine in GM.pc.getSpecies():
|
||
|
return "puppy"
|
||
|
elif Species.Feline in GM.pc.getSpecies():
|
||
|
return "kitty"
|
||
|
elif Species.Equine in GM.pc.getSpecies():
|
||
|
return "pony"
|
||
|
else:
|
||
|
return "pet"
|