Huile de rapidité (POTN14)

Huile de rapidité (POTN14)#

On hérite du snippet des Objets rapides.

IF
    ActionListEmpty()
    !GlobalTimerNotExpired("BD_Cast", "LOCALS")   //# BD_Cast is expired
    Global("BDAI_DISABLE_ITEMS", "LOCALS", 0)       //# Using items is authorized
    !StateCheck(Myself, STATE_SLEEPING | STATE_HELPLESS | STATE_REALLY_DEAD)  //# ACTION actions are usable
    CheckStat(Myself, 0, CASTERHOLD)
    HasItemEquiped("POTN14", Myself)    //# POTN14 is equiped
    OR(3)
        !ButtonDisabled(BUTTON_QUICKITEM1)
        !ButtonDisabled(BUTTON_QUICKITEM2)
        !ButtonDisabled(BUTTON_QUICKITEM3)

    !StateCheck(Myself, STATE_HASTED)
    See(NearestEnemyOf(Myself))
THEN
    RESPONSE #1
        UseItem("POTN14", Myself)
        SetGlobalTimer("BD_Cast", "LOCALS", ONE_MINUTE)
END

On vérifie que :

  • un effet similaire ne soit pas déjà en cours

  • un ennemi est vu

IF
    ActionListEmpty()
    !GlobalTimerNotExpired("BD_Cast", "LOCALS")   //# BD_Cast is expired
    Global("BDAI_DISABLE_ITEMS", "LOCALS", 0)       //# Using items is authorized
    !StateCheck(Myself, STATE_SLEEPING | STATE_HELPLESS | STATE_REALLY_DEAD)  //# ACTION actions are usable
    CheckStat(Myself, 0, CASTERHOLD)
    HasItemEquiped("POTN14", Myself)    //# POTN14 is equiped
    OR(3)
        !ButtonDisabled(BUTTON_QUICKITEM1)
        !ButtonDisabled(BUTTON_QUICKITEM2)
        !ButtonDisabled(BUTTON_QUICKITEM3)

    !StateCheck(Myself, STATE_HASTED | STATE_BLIND)
    HasWeaponEquiped(Myself)
    OR(2)
        Allegiance(Myself, GOODCUTOFF)
        NumCreatureGT([GOODCUTOFF], 4)
    OR(2)
        Allegiance(Myself, EVILCUTOFF)
        NumCreatureGT([EVILCUTOFF], 4)
THEN
    RESPONSE #1
        UseItem("POTN14", Myself)
        SetGlobalTimer("BD_Cast", "LOCALS", ONE_MINUTE)
END

On reprend la précédente en ajoutant :

  • Le personnage ne doit pas être aveuglé (malus de toucher et difficulté à trouver des cibles)

  • Une arme doit être équipée (cela filtre aussi un peu les moines, qui ne devraient pas pouvoir l’utiliser)

  • On remplace le trigger See par NumCreature, imposant un nombre plus important d’ennemi (la potion dure 5 tours)

IF
    ActionListEmpty()
    !GlobalTimerNotExpired("BD_Cast", "LOCALS")   //# BD_Cast is expired
    Global("BDAI_DISABLE_ITEMS", "LOCALS", 0)       //# Using items is authorized
    !StateCheck(Myself, STATE_SLEEPING | STATE_HELPLESS | STATE_REALLY_DEAD)  //# ACTION actions are usable
    CheckStat(Myself, 0, CASTERHOLD)
    HasItemEquiped("POTN14", Myself)    //# POTN14 is equiped
    OR(3)
        !ButtonDisabled(BUTTON_QUICKITEM1)
        !ButtonDisabled(BUTTON_QUICKITEM2)
        !ButtonDisabled(BUTTON_QUICKITEM3)

    !StateCheck(Myself, STATE_HASTED | STATE_BLIND)
    CheckStatGT(Myself, 7, STR)
    HasWeaponEquiped(Myself)
    CheckStatLT(Myself, 2, ENCUMBERANCE)
    !CheckSpellState(Myself, DEFENSIVE_SPIN)
    !CheckSpellState(Myself, OFFENSIVE_SPIN)

    CheckStat(Myself, 0, CLERIC_INSECT_PLAGUE)
    OR(2)
        !StateCheck(Myself, STATE_POISONED)
        CheckStatGT(Myself, 99, RESISTPOISON)

    OR(2)
        Allegiance(Myself, GOODCUTOFF)
        NumCreatureGT([GOODCUTOFF], 4)
    OR(2)
        Allegiance(Myself, EVILCUTOFF)
        NumCreatureGT([EVILCUTOFF], 4)
THEN
    RESPONSE #1
        UseItem("POTN14", Myself)
        SetGlobalTimer("BD_Cast", "LOCALS", ONE_MINUTE)
END

On reprend la précédente en ajoutant :

  • Le personnage a une force minimale de 8 (pas de malus au toucher)

  • Le personnage n’est pas immobilisé par surcharge (sa vitesse de déplacement étant nulle)

  • Le personnage n’est pas empoisonné ou grignoté par des insectes (sinon cela double la fréquence des dégâts)

  • Le personnage n’est pas immunisé contre la hâte (incomplet)

IF
    ActionListEmpty()
    !GlobalTimerNotExpired("BD_Cast", "LOCALS")   //# BD_Cast is expired
    Global("BDAI_DISABLE_ITEMS", "LOCALS", 0)       //# Using items is authorized
    !StateCheck(Myself, STATE_SLEEPING | STATE_HELPLESS | STATE_REALLY_DEAD)  //# ACTION actions are usable
    CheckStat(Myself, 0, CASTERHOLD)
    HasItemEquiped("POTN14", Myself)    //# POTN14 is equiped
    OR(3)
        !ButtonDisabled(BUTTON_QUICKITEM1)
        !ButtonDisabled(BUTTON_QUICKITEM2)
        !ButtonDisabled(BUTTON_QUICKITEM3)

    !StateCheck(Myself, STATE_HASTED | STATE_PANIC)
    CheckStat(Myself, 0, ENCUMBERANCE)
    !CheckSpellState(Myself, DEFENSIVE_SPIN)
    !CheckSpellState(Myself, OFFENSIVE_SPIN)
    HPPercentLT(Myself, 15)
    See(NearestEnemyOf(Myself))
THEN
    RESPONSE #1
        UseItem("POTN14", Myself)
        RunAwayFromNoInterrupt(LastSeenBy(Myself), 300)
END

Parce que cette potion permet aussi de courir plus vite.

  • Le personnage profite de cet avantage pour s’enfuir

IF
    ActionListEmpty()
    !GlobalTimerNotExpired("BD_Cast", "LOCALS")   //# BD_Cast is expired
    Global("BDAI_DISABLE_ITEMS", "LOCALS", 0)       //# Using items is authorized
    !StateCheck(Myself, STATE_SLEEPING | STATE_HELPLESS | STATE_REALLY_DEAD)  //# ACTION actions are usable
    CheckStat(Myself, 0, CASTERHOLD)
    HasItemEquiped("POTN14", Myself)    //# POTN14 is equiped
    OR(3)
        !ButtonDisabled(BUTTON_QUICKITEM1)
        !ButtonDisabled(BUTTON_QUICKITEM2)
        !ButtonDisabled(BUTTON_QUICKITEM3)

    HasItemEquiped("POTN42", Myself)
    !StateCheck(Myself, STATE_HASTED | STATE_PANIC)
    CheckStat(Myself, 0, ENCUMBERANCE)
    !CheckSpellState(Myself, DEFENSIVE_SPIN)
    !CheckSpellState(Myself, OFFENSIVE_SPIN)
    HPPercentLT(Myself, 25)

    CheckStat(Myself, 0, CLERIC_INSECT_PLAGUE)
    OR(2)
        !StateCheck(Myself, STATE_POISONED)
        CheckStatGT(Myself, 99, RESISTPOISON)

    See(NearestEnemyOf(Myself))
THEN
    RESPONSE #1
        UseItem("POTN14", Myself)
        RunAwayFromNoInterrupt(LastSeenBy(Myself), 100)
        UseItem("POTN42", Myself)
        RunAwayFromNoInterrupt(LastSeenBy(Myself), 300)
END

Parce que cette potion permet de courir et de régénérer plus vite.

  • Le personnage profite de ce bonus pour reculer et boire une potion de régénération dont l’efficacité est doublée