Skip to content

StripperPoleEx(Fork)

Choose a tag to compare

@ccccd333 ccccd333 released this 09 Jun 17:46
· 19 commits to master since this release

Mod Update Notes
Bug Fix
Fix for watch.tickIntervalAction: Changed JoyTickFullJoyAction.EndJob to None. Previously, the job would terminate as soon as the recreation meter reached maximum; it will now persist for the full duration.

New Prerequisites
Hospitality (Continued): Added as a prerequisite. This is required for guest management and to prevent game balance issues caused by infinite dancing sessions with the Lord.

New Features
Ideology Integration: Added support for the Ideology DLC. Striptease sessions will now trigger "Dance Party" visual effects and music.

Guest Interaction: Pawns can now invite guests (visitors) to watch a dance. This can be initiated by right-clicking the pole. Note: The pole must be assigned to a specific pawn to use this feature.

Automated Performance: Added a JobGiver to handle guest invitations. By setting the "Stripper" priority in the Work tab and assigning a pole to a specific pawn, the pawn will automatically perform for Hospitality guests.

Technical Refactoring
Cleanup of ThinkNode: Removed unnecessary ThinkNode references. Since Humanlike ThinkTrees already handle JobGiver_Work via MainColonistBehaviorCore, the custom ThinkNode was unused and mismatched with the actual DefName (StripperPoleBehaviorTree). The dancing logic is correctly handled via WorkGiver and JoyGiver.

Performance Optimization (Pole Caching): Replaced the redundant GetStripperPoles caching logic (which incorrectly used map.listerThings.ThingsOfDef) with a proper Dictionary<Map, List>. The cache is now updated during Spawn and Despawn, with a cleanup trigger added to GameComponent for game loading.

Refactoring JobGiver: Changed the inheritance of the JobGiver (previously JobGiver_Scanner). Since the original implementation did not utilize the scanner's functionality, the inheritance has been updated to reflect the actual implementation requirements.
ーーーーーーーーーーーー

<バグ修正>
watch.tickIntervalActionでJoyTickFullJoyAction.EndJobとしており、娯楽ゲージが最大になったらジョブを抜けていたのでNoneに変更して秒数間居座り続けるように修正
<前提の追加>
・Hospitality (Continued)
https://steamcommunity.com/sharedfiles/filedetails/?id=3509486825
顧客管理のためとダンスする対象を決める際に、Lordと無制限にダンスできるとバランス崩壊するので
<機能の追加>

<機能追加>
①イデオロギーのDLCがある場合のみ、ストリップダンス時にダンスパーティのエフェクトと音楽を再生するように変更
②お客(訪問者)にダンス見ないかというアプローチを行えるようにしました。ポールを右クリックで行えます。ただし、ポールを一人のポーンに所有させておく必要があります。
③先ほどのお客にダンスアプローチをJobGiver経由で起動されます。優先順位タブよりストリッパーの優先度をいじって、高優先度にして、ポールを一人のポーンに所有させておくとHospitality の訪問客がいる場合勝手に踊ってくれます
<実装面の修正>
①ThikNode_~の削除。理由はhumanRaceのThinkTreeは
Humanlike
HumanlikeConstant
で、そもそもdefnameがあってない(stripper poleのThinkTrees_StripperPoleBehaviorTree.xmlのdefname=StripperPoleBehaviorTree)ので使われてすらない。でもなぜポールダンスを行うかはWorkGiverのほうで、HumanlikeでMainColonistBehaviorCoreのJobGiver_WorkがThinkTreeに含まれているためである。ちなみにゲーム中の優先順位タブもjobgiverのほう。もう一か所呼ばれてるのはjoygiver側

②オリジナルからの仕様でポールがゲームロード時Spawnしたタイミングでキャッシュしてたのですが、GetStripperPolesでmap.listerThings.ThingsOfDefとしていたのでキャッシュする意味がありませんでした。そのためmap:というディクショナリを作ってspawn時追加とdespawn時削除としました。またゲームロード時のみこのキャッシュをクリアする処理をGameComp側に定義

③JobGiverがJobGiver_scannerだったのだが、ThinkNode->JobGiver_work経由で呼ばれるが、オリジナル実装でscannerの機能を使っていなかったため継承を変更