SickBoySB / cecommpatch

Clockwork Empires Community Patch
23 stars 12 forks source link

Check how barbershop/chapel jobs work #218

Open SickBoySB opened 7 years ago

SickBoySB commented 7 years ago
SickBoySB commented 7 years ago

Barbershop doesn't require being on shift, extremely high weight, standard interruption, etc. Seems fine... maybe those wanting healing just aren't waiting long enough before ditching the job and sending the alert.

Chapel requires being on shift for taking confessions, but some of the 'seek confession' jobs don't. There's a general inconsistency in how confession seeking works between the different variants.

The actual taking of the confession:

        <job name="Take Confession"
            display_name="Take Confession"
                test_for_interrupts="1"
                icon_skin="ui\\thoughtIcons.xml"
                icon="holy_cog"
                interruptee_type="2" interrupter_type="1"
                filter="workshop" >

            <require_not_sitting/>
            <require_empty_hands/>
            <require_character_on_shift/>
            <require_character_has_no_tag tag="fleeing"/>
            <require_work_building input="building"
                               failure_reason="Requires work building."
                               not_tag="no_supplies1"
                               must_lock="0" />

            <!-- <require_character_has_tag tag="vicar"/>     Quis custodiet ipsos custodes? -->      
            <utility min="0" max="1599">
                <base_job_utility weight="1400"/>
            </utility>

            <fsm>
                <weak_follow input="sender" />
                <vicar_take_confession input="sender" />
            </fsm>
        </job>

Job 1:

          <job name="Seek Confession (anger)"
               display_name="Seek Comfort from Vicar"
               mandatory_eval="1" 
               test_for_interrupts="1"
               icon="holy_cog" 
               icon_skin="ui\orderIcons.xml" 
               interruptee_type="3" 
               interrupter_type="2"
            is_social="1">

               <require_empty_hands/>
               <require_not_sitting/>
               <require_building input="building"
                           tag="chapel,overseer_active"
                           not_tag="no_supplies1"
                           must_lock="0"/>

               <require_character_has_no_tag tag="vicar"/>
               <utility max="50" >
                    <base_job_utility weight="5"/>
                <feeling name="fear" weight="1"/>
                <trait name="Spiritually Inclined" weight="10"/>
               </utility>

               <fsm>
                    <walk_to_building input="building"/>
                    <file_office_job input="building" name="Take Confession"/>
                    <wait_for_confession input="building"/>
               </fsm>
          </job>

Job 2:

          <job name="Seek Confession (Despair)"
               display_name="Seek Comfort from Vicar"
               mandatory_eval="1" 
               test_for_interrupts="1"
               icon="holy_cog" 
               icon_skin="ui\orderIcons.xml" 
               interruptee_type="3" 
               interrupter_type="2"
            is_social="1">

            <require_empty_hands/>
               <require_not_sitting/>
               <require_building input="building"
                           tag="chapel,overseer_active"
                           not_tag="no_supplies1"
                           must_lock="0"/>

            <require_gameobject input="vicar"
                            tag="chapel_jobs"
                            not_tag="corpse"
                            range="20"
                            must_lock="0"
                            closest="1"
                            failure_reason="Requires available vicar."
                            do_not_fill_dependency="1"/>

               <require_empty_hands/>

               <require_character_has_no_tag tag="vicar"/>
             <utility max="50" >
                    <base_job_utility weight="5"/>
                <feeling name="fear" weight="1"/>
                <trait name="Spiritually Inclined" weight="10"/>
               </utility>
               <fsm>
                    <walk_to_building input="building"/>
                    <file_office_job input="building" name="Take Confession"/>
                    <wait_for_confession input="building"/>
               </fsm>
          </job>

Job 3:

    <job name="Seek Confession"
        display_name="Seek Confession (Off-shift)"
        mandatory_eval="1" 
        test_for_interrupts="1"
        icon="holy_cog" 
        icon_skin="ui\orderIcons.xml" 
        interruptee_type="3" 
        interrupter_type="2"
        is_social="1" >

        <require_not_sitting/>
        <require_building input="building" tag="chapel,overseer_active" not_tag="no_supplies1,eventlocked" must_lock="0"/>
        <require_empty_hands/>
        <require_character_not_on_shift/>
        <require_character_has_no_tag tag="vicar"/>

        <utility min="0" max="10">
            <base_job_utility weight="2"/> <!-- 0 -->
            <feeling name="anger" weight="1">
                <trait name="Reclusive" weight="-2"/>
                <trait name="Spiritually Inclined" weight="3"/>

            </feeling>
            <feeling name="fear" weight="3">
                <trait name="Reclusive" weight="-2"/>
                <trait name="Spiritually Inclined" weight="3"/>
            </feeling>
            <feeling name="despair" weight="4"/>
        </utility>

        <fsm>
            <walk_to_building input="building"/>
            <file_office_job input="building" name="Take Confession"/>
            <wait_for_confession input="building"/>
        </fsm>
    </job>
SickBoySB commented 7 years ago

General brainstorm of solutions: