code:
;-------------------------------------------------
;強打　他単純な攻撃強化系処理
;-------------------------------------------------
@CC_ACTIVESKILL_SMITE(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
; #region
#DIM  ATTACKER_DID
#DIM  DEFENDER_DID
#DIMS XML_SKILL

;ダメージ再計算用
#DIM  DYNAMIC HP
#DIM  DYNAMIC MAX_HP

#DIM TRIGGER_ID
#DIM DYNAMIC SEQUENCE

#DIM ACTION_DID
#DIM MEM_CNT
#DIM IDX, CC_MAX_MEMBER_NUM /2
#DIM COLLATERAL_DAMAGE_TARGET, CC_MAX_MEMBER_NUM /2
#DIM COLLATERAL_TARGET_RANGE, CC_MAX_MEMBER_NUM /2
#DIM DYNAMIC TOKEN_COUNT
#DIM DYNAMIC SKILL_LV

;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, XML_SKILL, "ADD_NEW_BLOCK_TO_BOTTOM")
TRIGGER_ID = RESULT

SELECTCASE CCS_SKILL_DEF_NAME
        ;強打
    CASE "SMITE", "WPN_SMITE"
        ;リナのスキル固有処理　対象がスタンかよろめきを所持していると威力増加
        VARI NEKO_SMITE_FLG
        SKILL_LV = CC_HAS_SKILL(ATTACKER_DID, "PSV_UNIQUE_LINA_SMITE")
        IF SKILL_LV > 0 && ((CC_SP_TOKEN_NUM(DEFENDER_DID, "STUN") > 0) || (CC_SP_TOKEN_NUM(DEFENDER_DID, "STAGGER") > 0))
            NEKO_SMITE_FLG = 1
            CCS_EFFECT_RATE += CC_SKILL_GET_LABELED_VALUE_FROM_XML("PSV_UNIQUE_LINA_SMITE", SKILL_LV, "DAMAGE_MODIFIER")
        ENDIF

        CC_SE '= "HeavySlash_0.mp3"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE
        }

        ;リナの口上フラグセット
        SIF NEKO_SMITE_FLG
            CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "PSV_UNIQUE_LINA_SMITE", "1")

        ;リュミエールのスキル固有処理
        IF HAS_SKILL(CCS_ATK_CHARA_ID, "K1_UNIQUE_SKILL_SMITE_TWICE")
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE
                    ,"ABORT_CONDITION", "{CC_GET_ACT_FLAG(TRIGGER_ID, 0, \"ATTACK_SUCCEEDED\") == 0}"
            }
            CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "K1_UNIQUE_SKILL_SMITE_TWICE", "1")
        ENDIF
    CASE "CLEAVE_ATTACK"
        CC_SE '= "HeavySlash_0.mp3"
        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        FOR LOCAL, 0, MEM_CNT
            DEFENDER_DID = LIST_GETINT(CC_MULTI_TARGET_LIST, LOCAL)
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", CCS_SKILL_GET_LABELED_VALUE("DAMAGE_MODIFIER") / MEM_CNT
            }
        NEXT
        ;強装弾
    CASE "WPN_HARDSHOT"
        CC_SE '= "Shot_0.mp3"
        CALL CC_COST_ITEM_TOCAST(ATTACKER_DID, CCS_SKILL_DEF_NAME)
        IF RESULT
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE
            }

        ELSE
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_MESSAGE"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
            }
            CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "LACK_ITEM", "1")
            RETURN TRIGGER_ID
        ENDIF
        ;マナボルト
    CASE "ACT_CAST_SMITE"
        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)
        CC_SE '= "Slash_5.mp3"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE2
        }

        ;ソーニャユニークスキル固有処理
        IF HAS_SKILL(CCS_ATK_CHARA_ID, "K3_UNIQUE_SKILL_REACT_AFTER_CAST")
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", ATTACKER_DID
                    ,"TOKEN_NAME", "REACT"
                    ,"VALUE", 1
            }
        ENDIF
        ;霜の一閃
    CASE "WPN_FROST_SMITE"
        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)
        CC_SE '= "HeavySlash_1.mp3"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE
        }

        ;閃電の矢
    CASE "WPN_ELECTRIC_ARROW"
        ;防御側軽減値無視
        CC_SE '= "HeavySlash_1.mp3"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE
                ,"OPTION", "[IGNORE_ARMOR:1]"
        }

        ;致命の一撃
    CASE "ACT_FATAL_ATTACK","WPN_FATAL_ATTACK"
        VARI FATAL
        VARI SKILL_LV
        VARI ACTION_DID
        CC_SE '= "HeavySlash_1.mp3"
        HP = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "HP", 1)
        MAX_HP = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "MAX_HP", 1)
        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)
        TOKEN_COUNT = CC_SP_TOKEN_NUM(ATTACKER_DID, "HIDE")
        SIF TOKEN_COUNT > 0
            FATAL = 1
        SIF (HP * 100) / MAX_HP <= 50
            FATAL = 1
        ;俘者への致命打の処理
        IF (CC_SP_TOKEN_NUM(DEFENDER_DID, "TRAPPED") > 0) && (HAS_SKILL(CCS_ATK_CHARA_ID, "TRAPPED_FATAL_ATTACK")  > 0)
            CALL SKILL_GET_EFFECT_RATE(スキル_ジャンル_戦闘, "TRAPPED_FATAL_ATTACK", HAS_SKILL(CCS_ATK_CHARA_ID, "TRAPPED_FATAL_ATTACK"))
            ;致命フラグ判定
            SIF RAND:100 < RESULT
                FATAL = 1
        ENDIF
        IF FATAL
            ;アルノー固有スキルによる補正
            SKILL_LV = HAS_SKILL(CCS_ATK_CHARA_ID, "K17_UNIQUE_FATAL_STING", スキル_大分類_冒険)
            IF SKILL_LV
                CALL SKILL_GET_EFFECT_RATE(スキル_ジャンル_戦闘, "K17_UNIQUE_FATAL_STING", SKILL_LV)
                CCS_EFFECT_RATE += RESULT
                CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "K17_UNIQUE_FATAL_STING", "1")
            ENDIF
            ;俘者への致命打の処理
            SKILL_LV = HAS_SKILL(CCS_ATK_CHARA_ID, "TRAPPED_FATAL_ATTACK", スキル_大分類_冒険)
            IF SKILL_LV
                CALL SKILL_GET_EFFECT_RATE(スキル_ジャンル_戦闘, "TRAPPED_FATAL_ATTACK", SKILL_LV)
                ;よろめき付与判定
                IF RAND:100 < RESULT:1
                    {
                        DT_ROW_ADD "CC_ACTION"
                            ,"TRIGGER_ID", TRIGGER_ID
                            ,"SEQUENCE", SEQUENCE++
                            ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                            ,"ACTOR_DID", ATTACKER_DID
                            ,"TARGET_DID", DEFENDER_DID
                            ,"TOKEN_NAME", "STAGGER"
                            ,"VALUE", 1
                    }
                ENDIF
            ENDIF
        ENDIF
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", FATAL == 1 ? 100 + CCS_EFFECT_RATE # 100
        }
        ACTION_DID = RESULT
        SIF FATAL == 1
            CALL CC_SET_ACT_FLAG_BY_ID(ACTION_DID, "FATAL_ATTACK", "1")
        SIF HAS_SKILL(CCS_ATK_CHARA_ID, "K17_UNIQUE_FATAL_STING")
            CALL CC_SET_ACT_FLAG_BY_ID(ACTION_DID, "K17_UNIQUE_FATAL_STING", "1")
        ;魔刃一閃
    CASE "WPN_MANA_SMITE"
        CC_SE '= "HeavySlash_1.mp3"
        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)

        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        FOR LOCAL, 0, MEM_CNT
            DEFENDER_DID = LIST_GETINT(CC_MULTI_TARGET_LIST, LOCAL)
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE2
            }
        NEXT

        ;マナストーム
    CASE "ACT_CAST_ATTACK_ALL"
        CC_SE '= "Explode_0.mp3"
        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)

        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        FOR LOCAL, 0, MEM_CNT
            DEFENDER_DID = LIST_GETINT(CC_MULTI_TARGET_LIST, LOCAL)
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", 100
            }
        NEXT

        ;サンダーストーム
    CASE "ACT_THUNDER_STORM"
        CC_SE '= "Explode_0.mp3"
        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)

        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        FOR LOCAL, 0, MEM_CNT
            DEFENDER_DID = LIST_GETINT(CC_MULTI_TARGET_LIST, LOCAL)
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE2
            }
        NEXT

    CASE "ACT_FIRE_BREATH"
        CC_SE '= "Explode_0.mp3"
        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        FOR LOCAL, 0, MEM_CNT
            DEFENDER_DID = LIST_GETINT(CC_MULTI_TARGET_LIST, LOCAL)
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE
            }
        NEXT

        ;サンドダイブ
    CASE "ENEMY_ACT_SAND_DIVE"
        CC_SE '= "Explode_0.mp3"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"TOKEN_NAME", "BARRIER"
                ,"VALUE", CCS_EFFECT_RATE2
        }

        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE
        }
    CASE "ACT_CAST_FIRE_BALL"
        VARS TARGET_LIST
        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)
        CC_SE '= "Explode_0.mp3"

        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE2
        }
        ACTION_DID = RESULT

        ;巻き添えターゲットの取得
        MEM_CNT = CC_GET_COLLATERAL_DAMAGE_TARGETS(COLLATERAL_DAMAGE_TARGET, COLLATERAL_TARGET_RANGE)
        CALL CC_SET_ACT_FLAG_BY_ID(ACTION_DID, "TARGET_HEADCOUNT", TOSTR(MEM_CNT + 1))

        FOR LOCAL, 0, MEM_CNT
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", COLLATERAL_DAMAGE_TARGET:LOCAL
                    ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE3
            }
            CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "COUNTER_PROHIBITED", "1")
        NEXT

    CASE "ACT_CAST_STONE_RAIN"
        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        TOKEN_COUNT = MIN(CC_SP_TOKEN_NUM(ATTACKER_DID, "CAST"), 10)
        FOR LOCAL, 0, MEM_CNT
            DEFENDER_DID = LIST_GETINT(CC_MULTI_TARGET_LIST, LOCAL)
            ;真ん中ぐらいの回数を出やすく
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_MULTIPLE_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE2
                    ,"NUMBER_OF_ATTACKS", (RAND(CCS_EFFECT_RATE3, TOKEN_COUNT + 1) + RAND(CCS_EFFECT_RATE3, 1 + TOKEN_COUNT + 1)) / 2
            }
        NEXT
        CALL CC_SUB_SP_TOKEN(ATTACKER_DID, "CAST", TOKEN_COUNT)

        ;ホーリースフィア
    CASE "ACT_HOLY_SPHERE"
        CC_SE '= "Shot_0.mp3"

        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)
        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        FOR LOCAL, 0, MEM_CNT
            DEFENDER_DID = LIST_GETINT(CC_MULTI_TARGET_LIST, LOCAL)
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE2
            }
        NEXT

        ;おぞましき鉄槌
    CASE "ACT_ENEMY_WRAITHLORD_CRUSH"
        CC_SE '= "HeavySlash_0.mp3"
        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)
        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        FOR LOCAL, 0, CCS_EFFECT_RATE2
            CALL CLOSE_COMBAT_SET_TARGET(ATTACKER_DID)
            DEFENDER_DID = RESULT
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE
            }
        NEXT

    CASE "WPN_FLAME_THROW"
        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        FOR LOCAL, 0, MEM_CNT
            DEFENDER_DID = LIST_GETINT(CC_MULTI_TARGET_LIST, LOCAL)
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE
            }

            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_INFLICT_ABNORMALITY"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"TOKEN_NAME", "BURN"
                    ,"VALUE", CCS_EFFECT_RATE2
                    ,"SUCCESS_RATE", CCS_EFFECT_RATE3
                    ,"ABORT_CONDITION", "{CC_GET_ACT_FLAG(TRIGGER_ID, SEQUENCE - 1, \"ATTACK_SUCCEEDED\") == 0}"
            }
        NEXT
        ;総威力100%の連続攻撃
[SKIPSTART]
    CASE "EMEMY_MULTI_ATTACK"
        VARI DAMAGE_MODIFIER = 100 / CCS_EFFECT_RATE
        CALL CC_PRINT(@"%CCS_ATK_CHARA_NAME%の連続攻撃！")

        FOR LOCAL, 0, CCS_EFFECT_RATE
            CALL CC_ACTION_MANAGER_("ADD_NEW_BLOCK_TO_BOTTOM")
            BLOCK = RESULT
            SEQUENCE = 0
            CALL CLOSE_COMBAT_SET_TARGET(ATTACKER_DID)
            DEFENDER_DID = RESULT
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID

                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", DAMAGE_MODIFIER
            }
        NEXT
[SKIPEND]
        ;榴弾砲
    CASE "ENEMY_ACT_HOWITZER"
        VARS TARGET_LIST
        CC_SE '= "Cannon_0.mp3"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE
        }
        ACTION_DID = RESULT

        ;巻き添えターゲットの取得
        MEM_CNT = CC_GET_COLLATERAL_DAMAGE_TARGETS(COLLATERAL_DAMAGE_TARGET, COLLATERAL_TARGET_RANGE)
        CALL CC_SET_ACT_FLAG_BY_ID(ACTION_DID, "TARGET_HEADCOUNT", TOSTR(MEM_CNT + 1))

        FOR LOCAL, 0, MEM_CNT
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", COLLATERAL_DAMAGE_TARGET:LOCAL
                    ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE2
            }
            CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "COUNTER_PROHIBITED", "1")
        NEXT
        ;エクトプラズム
    CASE "ENEMY_ACT_ECTOPLASM"
        CC_SE '= "Bell_1.mp3"
        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)

        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        FOR LOCAL, 0, MEM_CNT
            DEFENDER_DID = LIST_GETINT(CC_MULTI_TARGET_LIST, LOCAL)
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE2
            }
            ;脱力付与ブロック 付与率は50％
            IF RAND:100 < 50
                {
                    DT_ROW_ADD "CC_ACTION"
                        ,"TRIGGER_ID", TRIGGER_ID
                        ,"SEQUENCE", SEQUENCE++
                        ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                        ,"ACTOR_DID", ATTACKER_DID
                        ,"TARGET_DID", DEFENDER_DID
                        ,"TOKEN_NAME", "WEAKNESS"
                        ,"VALUE", CCS_EFFECT_RATE3
                }
            ENDIF
        NEXT

        ;◆ランベルス槍殺法
    CASE "K18_UNIQUE_LANCE_DANCE"
        CC_SE '= "HeavySlash_1.mp3"
        ;脆弱トークン付与ブロック
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"TOKEN_NAME", "FRAGILE"
                ,"VALUE", CCS_EFFECT_RATE
        }
        ;一時的に武器の攻撃力の半分を武器の魔力にも乗せる(機能していなかったので一旦コメントアウト)
        ;脆弱付きの連続攻撃でもそれなりに強力なので、ここに魔力を乗せるとOP気味かもしれない
        ;WPN_STATUS:WPN_魔力 = FTIMES(WPN_STATUS:WPN_魔力, (WPN_STATUS:WPN_攻撃力 / 2))

        ;CCS_EFFECT_RATE3の回数だけ攻撃処理を実行
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_MULTIPLE_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE2
                ,"NUMBER_OF_ATTACKS", CCS_EFFECT_RATE3
        }

        ;秘剣・蒼星
    CASE "K9_UNIQUE_SKILL_BLUE_STAR"

        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)
        CC_SE '= "HeavySlash_1.mp3"
        ;命中対象の[ガード]減算処理
        IF CC_SP_TOKEN_NUM(DEFENDER_DID, "GUARD") > 0
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_SUB_SP_TOKEN"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"TOKEN_NAME", "GUARD"
                    ,"VALUE", CCS_EFFECT_RATE
            }
            ACTION_DID = RESULT
            CALL CC_SET_ACT_FLAG_BY_ID(ACTION_DID, "SUB_GUARD_BY_BLUE_STAR", "1")
        ENDIF
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE2
        }

        ;蒼刃一閃
    CASE "K9_UNIQUE_SKILL_BLUE_SLASH"
        CALL CC_COST_SP_TOKEN_TOCAST(ATTACKER_DID, CCS_REQTOKEN_TOCAST)
        CC_SE '= "HeavySlash_1.mp3"

        MEM_CNT = LIST_COUNT(CC_MULTI_TARGET_LIST)
        FOR LOCAL, 0, MEM_CNT
            DEFENDER_DID = LIST_GETINT(CC_MULTI_TARGET_LIST, LOCAL)
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", DEFENDER_DID
                    ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE2
            }
        NEXT

        ;◆双剣乱舞
    CASE "K21_UNIQUE_TWIN_DANCE"
        CC_SE '= "HeavySlash_1.mp3"
        ;相手に脆弱トークン付与ブロック
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"TOKEN_NAME", "FRAGILE"
                ,"VALUE", CCS_EFFECT_RATE
        }
        ;自身に脆弱トークン付与ブロック
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"TOKEN_NAME", "FRAGILE"
                ,"VALUE", CCS_EFFECT_RATE2
        }
        ;威力アップでの２回攻撃
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_MULTIPLE_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE3
                ,"NUMBER_OF_ATTACKS", 2
        }
        ;◆ついてきな！
    CASE "K21_UNIQUE_FOLLOW_ME"
        CC_SE '= "HeavySlash_1.mp3"
        ;指定した味方にリアクトを付与する
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"TOKEN_NAME", "REACT"
                ,"VALUE", CCS_EFFECT_RATE
        }
        ;自身に脆弱トークン付与する(デメリット)
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"TOKEN_NAME", "FRAGILE"
                ,"VALUE", CCS_EFFECT_RATE2
        }
        ;威力アップでの１回攻撃
        ;初回ターゲット選定でCC_MULTI_TARGET_LISTに値が入っているとスキップされるのでリセット
        CC_MULTI_TARGET_LIST '= ""
        CALL CC_PRINT(@"@C:{カラー_注釈}@*攻撃対象を選択*@/C@")
        CALL CLOSE_COMBAT_TARGET_SELECT(ATTACKER_DID, CCS_ATK_SIDE == 0 ? 1 # 0, 1)
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", RESULT
                ,"DAMAGE_MODIFIER", 100 + CCS_EFFECT_RATE3
        }

    CASEELSE
        RETURN 0
ENDSELECT

;クールタイム処理
CALL CCS_ADD_COOLTIME()

RETURN TRIGGER_ID
; #endregion


code:
;-------------------------------------------------
;テスト用スキル
;-------------------------------------------------
@CC_ACTIVESKILL_SUMMON_ACTOR(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
; #region
#DIM ATTACKER_DID
#DIM DEFENDER_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE

;スキル固有の変数
#DIM DYNAMIC MAX_HP
;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, XML_SKILL, "ADD_NEW_BLOCK_TO_BOTTOM")
TRIGGER_ID = RESULT

;効果
CALL CCS_CAN_SUMMON(ATTACKER_DID, CCS_SKILL_DEF_NAME)
IF !RESULT
    ;CALL CC_PRINT(@"……しかし指揮可能なメンバーの余剰がない！")
    {
        DT_ROW_ADD "CC_ACTION"
            ,"TRIGGER_ID", TRIGGER_ID
            ,"SEQUENCE", SEQUENCE++
            ,"FUNCTION_NAME", "CC_ACTION_MESSAGE"
            ,"ACTOR_DID", ATTACKER_DID
            ,"TARGET_DID", DEFENDER_DID
    }
    CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "NO_SUMMON_CAPACITY", "1")
    RETURN TRIGGER_ID
ENDIF
SELECTCASE CCS_SKILL_DEF_NAME
    CASE "TESTSKILL"
        CC_SE '= "Heal_0.mp3"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID

                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"SIDE", CCS_ATK_SIDE
                ,"DEF_NAME", "壊乱の狂鹿"
                ,"DISP_NAME", "壊乱の狂鹿"
        }

        ;傭兵呼集
    CASE "ACT_SUMMON_MERCENARY"
        CC_SE '= "Speed_0.mp3"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID

                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"SIDE", CCS_ATK_SIDE
                ,"DEF_NAME", "傭兵"
                ,"DISP_NAME", "傭兵"
                ,"EFFECT_RATE", CCS_EFFECT_RATE
        }
        ;オリヴィアのユニークスキル
    CASE "ACT_MARE_NOSTRUM"
        CC_SE '= "Speed_0.mp3"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID

                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"SIDE", CCS_ATK_SIDE
                ,"DEF_NAME", "リヴィエラ精鋭海兵"
                ,"DISP_NAME", "リヴィエラ精鋭海兵"
                ,"EFFECT_RATE", CCS_EFFECT_RATE
        }

        ;竜牙兵召喚
    CASE "WPN_SUMMON_SPARTOI"
        CALL CC_COST_ITEM_TOCAST(ATTACKER_DID, CCS_SKILL_DEF_NAME)
        IF RESULT
            CC_SE '= "Dice_0.mp3"
            SELECTCASE RAND:100
                CASE 0 TO 55
                    {
                        DT_ROW_ADD "CC_ACTION"
                            ,"TRIGGER_ID", TRIGGER_ID

                            ,"SEQUENCE", SEQUENCE++
                            ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                            ,"ACTOR_DID", ATTACKER_DID
                            ,"TARGET_DID", ATTACKER_DID
                            ,"SIDE", CCS_ATK_SIDE
                            ,"DEF_NAME", "竜牙兵"
                            ,"DISP_NAME", "竜牙兵"
                            ,"EFFECT_RATE", CCS_EFFECT_RATE
                    }
               CASE 56 TO 70
                    {
                        DT_ROW_ADD "CC_ACTION"
                            ,"TRIGGER_ID", TRIGGER_ID

                            ,"SEQUENCE", SEQUENCE++
                            ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                            ,"ACTOR_DID", ATTACKER_DID
                            ,"TARGET_DID", ATTACKER_DID
                            ,"SIDE", CCS_ATK_SIDE
                            ,"DEF_NAME", "竜牙兵・大刀"
                            ,"DISP_NAME", "竜牙兵・大刀"
                            ,"EFFECT_RATE", CCS_EFFECT_RATE
                    }
                CASE 71 TO 85
                    {
                        DT_ROW_ADD "CC_ACTION"
                            ,"TRIGGER_ID", TRIGGER_ID

                            ,"SEQUENCE", SEQUENCE++
                            ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                            ,"ACTOR_DID", ATTACKER_DID
                            ,"TARGET_DID", ATTACKER_DID
                            ,"SIDE", CCS_ATK_SIDE
                            ,"DEF_NAME", "竜牙兵・長槍"
                            ,"DISP_NAME", "竜牙兵・長槍"
                            ,"EFFECT_RATE", CCS_EFFECT_RATE
                    }
                CASEELSE
                    {
                        DT_ROW_ADD "CC_ACTION"
                            ,"TRIGGER_ID", TRIGGER_ID

                            ,"SEQUENCE", SEQUENCE++
                            ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                            ,"ACTOR_DID", ATTACKER_DID
                            ,"TARGET_DID", ATTACKER_DID
                            ,"SIDE", CCS_ATK_SIDE
                            ,"DEF_NAME", "竜牙兵・符呪"
                            ,"DISP_NAME", "竜牙兵・符呪"
                            ,"EFFECT_RATE", CCS_EFFECT_RATE
                    }
            ENDSELECT
        ELSE
            {
                DT_ROW_ADD "CC_ACTION"
                    ,"TRIGGER_ID", TRIGGER_ID
                    ,"SEQUENCE", SEQUENCE++
                    ,"FUNCTION_NAME", "CC_ACTION_MESSAGE"
                    ,"ACTOR_DID", ATTACKER_DID
                    ,"TARGET_DID", ATTACKER_DID
            }
            CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "LACK_ITEM", "1")
            RETURN TRIGGER_ID
        ENDIF
        ;敵版は一気に五体召喚
    CASE "ENEMY_ACT_SUMMON_SPARTOI"
        CC_SE '= "Dice_0.mp3"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID

                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"SIDE", CCS_ATK_SIDE
                ,"DEF_NAME", "竜牙兵"
                ,"DISP_NAME", "竜牙兵１"
                ,"EFFECT_RATE", CCS_EFFECT_RATE
        }
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID

                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"SIDE", CCS_ATK_SIDE
                ,"DEF_NAME", "竜牙兵・大刀"
                ,"DISP_NAME", "竜牙兵・大刀"
                ,"EFFECT_RATE", CCS_EFFECT_RATE
        }
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID

                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"SIDE", CCS_ATK_SIDE
                ,"DEF_NAME", "竜牙兵・符呪"
                ,"DISP_NAME", "竜牙兵・符呪"
                ,"EFFECT_RATE", CCS_EFFECT_RATE
        }
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID

                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"SIDE", CCS_ATK_SIDE
                ,"DEF_NAME", "竜牙兵・長槍"
                ,"DISP_NAME", "竜牙兵・長槍"
                ,"EFFECT_RATE", CCS_EFFECT_RATE
        }
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID

                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_SUMMON_ACTOR"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"SIDE", CCS_ATK_SIDE
                ,"DEF_NAME", "竜牙兵"
                ,"DISP_NAME", "竜牙兵２"
                ,"EFFECT_RATE", CCS_EFFECT_RATE
        }
ENDSELECT

;クールタイム処理
CALL CCS_ADD_COOLTIME()

RETURN TRIGGER_ID
; #endregion

repo_name: napo/erafl

license: unknown


code:
;-------------------------------------------------
;テスト用スキル
;-------------------------------------------------
@CC_ACTIVESKILL_TESTSKILL(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
; #region
#DIM ATTACKER_DID
#DIM DEFENDER_DID
#DIMS XML_SKILL

;スキル固有の変数
#DIM DYNAMIC MAX_HP
;スキル処理用パラメータの初期化と取得
CALL CCS_INIT_PARAM()
CALL CCS_SET_PARAM(ATTACKER_DID, DEFENDER_DID, XML_SKILL)

;効果
CALL CC_PRINT(@"%CCS_ATK_CHARA_NAME%のスキル：@C:{カラー_注意}@<%CCS_SKILL_NAME%>@/C@が発動！")
CALL CCS_CAN_SUMMON()
SELECTCASE CCS_SKILL_DEF_NAME
    CASE "TESTSKILL"
        CALL CC_PRINT(@"@C:{カラー_注意}@%CCS_ATK_CHARA_NAME%は何処からともなく壊乱の狂鹿を呼び寄せた！@/C@")
        CALL CC_ADDMOB_FROM_TABLE(TOSTR(CCS_ATK_SIDE), "壊乱の狂鹿", "壊乱の狂鹿")
        DT_CELL_SET "CC_ACTOR", RESULT, "EFFECT", "増援", 1
        CC_SE '= "Heal_0.mp3"
ENDSELECT

;クールタイム処理
CALL CCS_ADD_COOLTIME()

RETURN 1
; #endregion


code:
;-------------------------------------------------
; パッシブ
;-------------------------------------------------
;自己強化系パッシブスキル
; #region CC_ATKSKILL_ADD_TOKEN_TO_SELF
@CC_ATKSKILL_ADD_TOKEN_TO_SELF(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
; #region
#DIM  ATTACKER_DID
#DIM  DEFENDER_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE

;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, XML_SKILL, "ADD_NEW_BLOCK_TO_BOTTOM")
TRIGGER_ID = RESULT

SELECTCASE CCS_SKILL_DEF_NAME
        ;戦術詠唱
    CASE "ATK_ADD_CAST_TOKEN"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"TOKEN_NAME", "CAST"
                ,"VALUE", CCS_EFFECT_RATE
        }
        ;仮想魔導回路
    CASE "ATK_ADD_CAST_TOKEN_ALT"
        ;戦術詠唱がある場合は処理しない
        IF HAS_SKILL(CCS_ATK_CHARA_ID, "ATK_ADD_CAST_TOKEN")
            RETURN 0
        ENDIF
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"TOKEN_NAME", "CAST"
                ,"VALUE", CCS_EFFECT_RATE
        }
        ;戦歌
    CASE "ATK_ADD_SONG_TOKEN"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"TOKEN_NAME", "SONG"
                ,"VALUE", CCS_EFFECT_RATE
        }
        ;チャージ
    CASE "ATK_ADD_CHARGE_TOKEN"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"TOKEN_NAME", "CHARGE"
                ,"VALUE", CCS_EFFECT_RATE
        }
        ;竜の心臓、龍脈呪刻
    CASE "K26_UNIQUE_SKILL_DRAGONHEART", "ENEMY_SKILL_DRAGONHEART", "ENEMY_SKILL_DRAGONMARK"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"TOKEN_NAME", "DRAGONIC_EFFECT"
                ,"VALUE", CCS_EFFECT_RATE
        }
ENDSELECT
; #endregion

RETURN TRIGGER_ID

;自己強化系パッシブスキル
@CC_ATKSKILL_ADDITIONAL_ATTACK(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
; #region CC_ATKSKILL_ADDITIONAL_ATTACK
#DIM  ATTACKER_DID
#DIM  DEFENDER_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE

;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, XML_SKILL, "ADD_NEW_BLOCK_TO_BOTTOM")
TRIGGER_ID = RESULT

SELECTCASE CCS_SKILL_DEF_NAME
        ;ミスディレクション
    CASE "ATK_ADDITIONAL_ATTACK_WITH_DECOY"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_NORMAL_ATTACK_BASE_PARAM"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"NUMBER_OF_ATTACKS", 1
        }
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_UPDATE_NORMAL_ATTACK_BASE_DAMAGE"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"VALUE", CCS_EFFECT_RATE
        }
        ;連撃
    CASE "K9_UNIQUE_SKILL_MULTI"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ADD_NORMAL_ATTACK_BASE_PARAM"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"NUMBER_OF_ATTACKS", 1
        }
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_UPDATE_NORMAL_ATTACK_BASE_DAMAGE"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"VALUE", 100
        }
ENDSELECT

RETURN TRIGGER_ID
; #endregion

;アーマーピアサー
@CC_ATKSKILL_ARMOR_DECAY_BY_NUMBER(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
; #region CC_ATKSKILL_ARMOR_DECAY_BY_NUMBER
#DIM  ATTACKER_DID
#DIM  DEFENDER_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE

;スキル固有の変数
#DIM DYNAMIC F_ARMOR
;武器情報
#DIM  DYNAMIC WEAPON_DID
#DIMS DYNAMIC DIC_WPN_SKILL
#DIM  DYNAMIC WPN_EFFECT_RATE
#DIMS DYNAMIC WPN_SKILL_NAME

;スキル処理用パラメータの初期化と取得
CALL CCS_INIT_PARAM()
CALL CCS_SET_PARAM(ATTACKER_DID, DEFENDER_DID, XML_SKILL)

;ダメージ軽減値が最初から0の場合は処理しない
F_ARMOR = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "ARMOR", 1)
SIF F_ARMOR == 0
    RETURN 0

CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, XML_SKILL, "ADD_TO_CURRENT_BLOCK")
TRIGGER_ID = RESULT

;アルノー固有スキルによる補正
VARI SKILL_LV
SKILL_LV = HAS_SKILL(CCS_ATK_CHARA_ID, "K17_UNIQUE_MORE_DECAY", スキル_大分類_冒険)
IF SKILL_LV
    CALL SKILL_GET_EFFECT_RATE(スキル_ジャンル_戦闘, "K17_UNIQUE_MORE_DECAY", SKILL_LV)
    CCS_EFFECT_RATE = FTIMES(CCS_EFFECT_RATE, 100 + RESULT)
ENDIF

;武器パッシブスキル<侵徹>による補正
IF HAS_SKILL(CCS_ATK_CHARA_ID, "WPN_UPWARD_ARMOR_DECAY", スキル_大分類_武器)
    WEAPON_DID = RESULT:1
    CALL WPN_SKILL_GET_PARAMS_TO_TABLE(WEAPON_DID, 武器スキル_パッシブ, "WPN_UPWARD_ARMOR_DECAY")
    WPN_EFFECT_RATE = DT_CELL_GET("WPN_SKILL_PARAMS", 0, "EFFECT_RATE")
    WPN_SKILL_NAME = %DT_CELL_GETS("WPN_SKILL_PARAMS", 0, "SKILL_NAME")%
    CCS_EFFECT_RATE = FTIMES(CCS_EFFECT_RATE, 100 + WPN_EFFECT_RATE)
ENDIF

{
    DT_ROW_ADD "CC_ACTION"
        ,"TRIGGER_ID", TRIGGER_ID
        ,"SEQUENCE", SEQUENCE
        ,"FUNCTION_NAME", "CC_ACTION_MODIFY_ABLITY"
        ,"ACTOR_DID", ATTACKER_DID
        ,"TARGET_DID", DEFENDER_DID
        ,"ABLITY_NAME", "ARMOR"
        ,"VALUE", CCS_EFFECT_RATE * -1
}
LOCAL = RESULT
CALL CC_SET_ACT_FLAG_BY_ID(LOCAL, "EFFECT_RATE", TOSTR(CCS_EFFECT_RATE))
IF WPN_EFFECT_RATE > 0
    CALL CC_SET_ACT_FLAG_BY_ID(LOCAL, "WPN_UPWARD_ARMOR_DECAY", WPN_SKILL_NAME)
    CALL CC_SET_ACT_FLAG_BY_ID(LOCAL, "WPN_UPWARD_ARMOR_DECAY_RATE", TOSTR(WPN_EFFECT_RATE))
ENDIF

RETURN TRIGGER_ID
; #endregion

;スタン付与系
@CC_ATKSKILL_INFLICT_STUN(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
; #region
#DIM  ATTACKER_DID
#DIM  DEFENDER_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE

;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, XML_SKILL, "ADD_TO_CURRENT_BLOCK")
TRIGGER_ID = RESULT

;効果
SELECTCASE CCS_SKILL_DEF_NAME
        ;衝撃と畏怖
    CASE "STUN_ENEMY"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE
                ,"FUNCTION_NAME", "CC_ACTION_ADD_ABNORMALITY"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"TOKEN_NAME", "STUN"
                ,"VALUE", 1
                ,"SUCCESS_RATE", CCS_EFFECT_RATE
                ,"ENHANCE_REGIST_AFTER_INFLICT", 20
        }

        ;影縫いの術・改
    CASE "PSV_SHADOW_SEWING"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE
                ,"FUNCTION_NAME", "CC_ACTION_ADD_ABNORMALITY"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
                ,"TOKEN_NAME", "STUN"
                ,"VALUE", 1
                ,"SUCCESS_RATE", CCS_EFFECT_RATE
                ,"ENHANCE_REGIST_AFTER_INFLICT", 20
        }
    CASEELSE
        RETURN 0
ENDSELECT
RETURN TRIGGER_ID
; #endregion

;毒腺
@CC_ATKSKILL_INFLICT_POISON(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
; #region
#DIM  ATTACKER_DID
#DIM  DEFENDER_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE

;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, XML_SKILL, "ADD_TO_CURRENT_BLOCK")
TRIGGER_ID = RESULT

{
    DT_ROW_ADD "CC_ACTION"
        ,"TRIGGER_ID", TRIGGER_ID
        ,"SEQUENCE", SEQUENCE
        ,"FUNCTION_NAME", "CC_ACTION_INFLICT_ABNORMALITY"
        ,"ACTOR_DID", ATTACKER_DID
        ,"TARGET_DID", DEFENDER_DID
        ,"TOKEN_NAME", "POISON"
        ,"VALUE", CCS_EFFECT_RATE2
        ,"SUCCESS_RATE", CCS_EFFECT_RATE
}
RETURN TRIGGER_ID
; #endregion

;アステ固有スキル（パッシブ） 竜気凛々
@CC_PASSIVESKILL_K26_UNIQUE_SKILL(ATTACKER_DID, DEFENDER_DID, _XML_SKILL)
#DIM  ATTACKER_DID
#DIM  DEFENDER_DID
#DIMS _XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE

#DIM  DYNAMIC CHARA_ID
#DIM  DYNAMIC CHARGE_FLAG
#DIM  DYNAMIC SKILL_SLOT_DID, MAX_SKILL_SLOT
#DIM  DYNAMIC SKILL_SLOT_IDX
#DIM  DYNAMIC SKILL_COOLTIME
#DIMS  DYNAMIC SKILL_DEF_NAME
#DIM  ITER_J

;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, _XML_SKILL, "ADD_NEW_BLOCK_TO_BOTTOM")
TRIGGER_ID = RESULT

CHARGE_FLAG = 0
CHARA_ID = NAME_TO_CHARA("UC_アステ")
DT_SELECT "CC_SKILL_SLOT",@"CHARA_ID = {CHARA_ID}",, SKILL_SLOT_DID
FOR ITER_J, 0, RESULT
    SKILL_COOLTIME = DT_CELL_GET("CC_SKILL_SLOT", SKILL_SLOT_DID:ITER_J, "COOLTIME", 1)
    SKILL_DEF_NAME = %DT_CELL_GETS("CC_SKILL_SLOT", SKILL_SLOT_DID:ITER_J, "SKILL_DEF_NAME", 1)%
    ;竜の爪雷、プラズマブレス、竜の戦吼、ドラゴンジャンプにのみ有効 かつ竜気トークンがRATEを超えている
    IF SKILL_COOLTIME > 0 && (SKILL_DEF_NAME == "K26_UNIQUE_SKILL_THUNDER_CROW" || SKILL_DEF_NAME == "K26_UNIQUE_SKILL_PLASMA_BRESS" || SKILL_DEF_NAME == "K26_UNIQUE_SKILL_STUN_ROAR" || SKILL_DEF_NAME == "K26_UNIQUE_SKILL_DRAGON_JUMP") && CC_SP_TOKEN_NUM(ATTACKER_DID, "DRAGONIC_EFFECT") >= CCS_EFFECT_RATE
        ;1回にいくつ作動しても、消費トークンは１度分
        CHARGE_FLAG = 1
        IF SKILL_COOLTIME >= 2
            SKILL_SLOT_IDX = DT_CELL_GET("CC_SKILL_SLOT", SKILL_SLOT_DID:ITER_J, "SKILL_SLOT_IDX", 1)
            DT_CELL_SET "CC_SKILL_SLOT", SKILL_SLOT_DID:ITER_J, "COOLTIME", SKILL_COOLTIME - CCS_EFFECT_RATE3, 1
            ACTIVE_SKILL_COOLTIME:CHARA_ID:SKILL_SLOT_IDX = SKILL_COOLTIME - CCS_EFFECT_RATE3
        ELSE
            SKILL_SLOT_IDX = DT_CELL_GET("CC_SKILL_SLOT", SKILL_SLOT_DID:ITER_J, "SKILL_SLOT_IDX", 1)
            DT_CELL_SET "CC_SKILL_SLOT", SKILL_SLOT_DID:ITER_J, "COOLTIME", SKILL_COOLTIME - 1, 1
            ACTIVE_SKILL_COOLTIME:CHARA_ID:SKILL_SLOT_IDX = SKILL_COOLTIME - 1
        ENDIF
    ENDIF
NEXT
;いずれかのスキルクールタイムを軽減したら、トークンを消費
IF CHARGE_FLAG
    CC_SE '= "Charge_0.mp3"
    {
        DT_ROW_ADD "CC_ACTION"
            ,"TRIGGER_ID", TRIGGER_ID
            ,"SEQUENCE", SEQUENCE++
            ,"FUNCTION_NAME", "CC_ACTION_SUB_SP_TOKEN"
            ,"ACTOR_DID", ATTACKER_DID
            ,"TARGET_DID", ATTACKER_DID
            ,"TOKEN_NAME", "DRAGONIC_EFFECT"
            ,"VALUE", CCS_EFFECT_RATE2
    }
ELSE
    RETURN 0
ENDIF
RETURN TRIGGER_ID
; #endregion

;-------------------------------------------------
;クリティカルボーナス系スキル
;-------------------------------------------------
; #region
@CC_ATKSKILL_BOOST_CRT(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
#DIM  ATTACKER_DID
#DIM  DEFENDER_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE

#DIM  SOURCE_ACTION_DID
#DIM  ACTION_DID

;スキル固有の変数
#DIM DYNAMIC TOKEN_COUNT

;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, XML_SKILL, "ADD_NEW_BLOCK_TO_BOTTOM")
TRIGGER_ID = RESULT

SELECTCASE CCS_SKILL_DEF_NAME
    CASE "ATK_BOOST_CRT_BY_SONG"
        ;ハイビートは最大5カウント
        TOKEN_COUNT = MIN(CC_SP_TOKEN_NUM(ATTACKER_DID, "SONG"), 5)
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE
                ,"FUNCTION_NAME", "CC_ACTION_ADD_NORMAL_ATTACK_BASE_PARAM"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"CRITICAL_RATE", CCS_EFFECT_RATE * TOKEN_COUNT
                ,"CRITICAL_DAMAGE_RATE", CCS_EFFECT_RATE * TOKEN_COUNT
        }
    CASEELSE
        RETURN 0
ENDSELECT
RETURN TRIGGER_ID
; #endregion

;-------------------------------------------------
;;; 追撃系スキル
;;; スタック処理を用いないスキル例
;-------------------------------------------------
; #region
@CC_ATKSKILL_CHASE_ATTACK(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
#DIM  ATTACKER_DID
#DIM  DEFENDER_DID
#DIMS XML_SKILL
#DIM  SOURCE_ACTION_DID
#DIM  ACTION_DID
#DIM TRIGGER_ID
;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, XML_SKILL, "INSTANT")
TRIGGER_ID = RESULT

SELECTCASE CCS_SKILL_DEF_NAME
    CASE "CHASE_POISON"
        CALL CC_ACTION_MANAGER_("GET_CURRENT_ACTION_DID")
        SOURCE_ACTION_DID = RESULT
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "DAMAGE_MODIFIER", CCS_EFFECT_RATE)
        ;口上呼び出し用の最小アクションを登録
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
        }
        ACTION_DID = RESULT
    CASE "CHASE_BURN"
        CALL CC_ACTION_MANAGER_("GET_CURRENT_ACTION_DID")
        SOURCE_ACTION_DID = RESULT
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "CRITICAL_RATE", CCS_EFFECT_RATE)
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "CRITICAL_DAMAGE_RATE", CCS_EFFECT_RATE2)
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
        }
        ACTION_DID = RESULT
    CASE "K28_UNIQUE_SKILL_FINAL_STUB"
        CALL CC_ACTION_MANAGER_("GET_CURRENT_ACTION_DID")
        SOURCE_ACTION_DID = RESULT
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "CRITICAL_RATE", CCS_EFFECT_RATE)
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "CRITICAL_DAMAGE_RATE", CCS_EFFECT_RATE2)
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
        }
        ACTION_DID = RESULT
    CASE "ATK_BOOST_CRT_BY_HIDE"
        ;アサシネイト
        CALL CC_ACTION_MANAGER_("GET_CURRENT_ACTION_DID")
        SOURCE_ACTION_DID = RESULT
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "CRITICAL_RATE", CCS_EFFECT_RATE)
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "CRITICAL_DAMAGE_RATE", CCS_EFFECT_RATE2)
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
        }
        ACTION_DID = RESULT
    CASE "K29_UNIQUE_SKILL_BREAK_EDGE_CORE"
        CALL CC_ACTION_MANAGER_("GET_CURRENT_ACTION_DID")
        SOURCE_ACTION_DID = RESULT
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "CRITICAL_RATE", CCS_EFFECT_RATE)
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "CRITICAL_DAMAGE_RATE", CCS_EFFECT_RATE2)
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
        }
        ACTION_DID = RESULT
    CASE "K29_UNIQUE_SKILL_BREAK_ARMOR_CORE"
        CALL CC_ACTION_MANAGER_("GET_CURRENT_ACTION_DID")
        SOURCE_ACTION_DID = RESULT
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "CRITICAL_RATE", CCS_EFFECT_RATE)
        CALL CC_EDIT_ADD_ACT_INFO(SOURCE_ACTION_DID, "CRITICAL_DAMAGE_RATE", CCS_EFFECT_RATE2)
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", DEFENDER_DID
        }
        ACTION_DID = RESULT
    CASEELSE
        RETURN 0
ENDSELECT
;そのまま口上呼び出し
CALL KOJO_XML_COMBAT(ACTION_DID, "EXEC")
CALL KOJO_XML_COMBAT(ACTION_DID, "RESULT")
DT_ROW_REMOVE "CC_TRIGGERED_SKILL", TRIGGER_ID
DT_ROW_REMOVE "CC_ACTION", ACTION_DID

RETURN 0

; #endregion

;-------------------------------------------------
; 食いしばり効果
;-------------------------------------------------
@CC_PASSIVESKILL_SURVIVOR(ACTOR_DID, TARGET_DID, XML_SKILL)
#DIM  ACTOR_DID
#DIM  TARGET_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM ACTION_DID

SIF DT_CELL_GET("CC_ACTOR", ACTOR_DID, "HP", 1) > 0
    RETURN 0
SIF CC_GET_ACTOR_FLAG(ACTOR_DID, "SURVIVE_SKILL_ACTIVATED") > 0
    RETURN 0

;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ACTOR_DID, TARGET_DID, XML_SKILL, "INSTANT")
TRIGGER_ID = RESULT

SELECTCASE CCS_SKILL_DEF_NAME
    CASE "PSV_SURVIVOR"
        CALL CC_ADD_ACTOR_FLAG(ACTOR_DID, "SURVIVE_SKILL_ACTIVATED", 1)
        DT_CELL_SET "CC_ACTOR", ACTOR_DID, "HP", 1, 1

        ;口上呼び出し用の最小アクションを登録
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"ACTOR_DID", ACTOR_DID
                ,"TARGET_DID", TARGET_DID
        }
        ACTION_DID = RESULT
    CASEELSE
        RETURN 0
ENDSELECT
;そのまま口上呼び出し
CALL KOJO_XML_COMBAT(ACTION_DID, "EXEC")
CALL KOJO_XML_COMBAT(ACTION_DID, "RESULT")
DT_ROW_REMOVE "CC_TRIGGERED_SKILL", TRIGGER_ID
DT_ROW_REMOVE "CC_ACTION", ACTION_DID

RETURN 0

;BEFORE_ATTACKパッシブ
@CC_PSV_BEFORE_ATTACK(ATTACKER_DID, DEFENDER_DID, XML_SKILL)
; #region
#DIM  ATTACKER_DID
#DIM  DEFENDER_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE

;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ATTACKER_DID, DEFENDER_DID, XML_SKILL, "ADD_NEW_BLOCK_TO_BOTTOM")
TRIGGER_ID = RESULT

;効果
SELECTCASE CCS_SKILL_DEF_NAME
        ;防御姿勢
    CASE "DEFENSIVE_STANCE"
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_SET_ACTOR_STATE"
                ,"ACTOR_DID", ATTACKER_DID
                ,"TARGET_DID", ATTACKER_DID
                ,"DEF_NAME", "[SUBSTATE:防御]"
        }
    CASEELSE
        RETURN 0
ENDSELECT
RETURN TRIGGER_ID
; #endregion


code:
;-------------------------------------------------
; パッシブ
;-------------------------------------------------
;カウンター
@CC_PASSIVESKILL_COUNTER_ATTACK(ACTOR_DID, TARGET_DID, XML_SKILL)
#DIM  ACTOR_DID
#DIM  TARGET_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE
#DIM ACTION_DID
;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ACTOR_DID, TARGET_DID, XML_SKILL, "ADD_NEW_BLOCK_TO_TOP")
TRIGGER_ID = RESULT

SELECTCASE CCS_SKILL_DEF_NAME
        ;カウンター
    CASE "COUNTER_ATTACK"
        ;レアンナスキル処理
        VARI SKILL_LV
        SKILL_LV = HAS_SKILL(CCS_ATK_CHARA_ID, "K30_UNIQUE_SKILL_WITHER_THORN", スキル_大分類_冒険)
        IF SKILL_LV
            VARI M_COUNTER
            M_COUNTER = ABL:CCS_ATK_CHARA_ID:魔術
            CALL SKILL_GET_EFFECT_RATE(スキル_ジャンル_戦闘, "K30_UNIQUE_SKILL_WITHER_THORN", SKILL_LV)
            CCS_EFFECT_RATE += MIN(25, M_COUNTER * RESULT / 100)
            CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "K30_UNIQUE_SKILL_WITHER_THORN", "1")
        ENDIF
        {
            DT_ROW_ADD "CC_ACTION"
                ,"TRIGGER_ID", TRIGGER_ID
                ,"SEQUENCE", SEQUENCE++
                ,"FUNCTION_NAME", "CC_ACTION_ATTACK"
                ,"ACTOR_DID", ACTOR_DID
                ,"TARGET_DID", TARGET_DID
                ,"DAMAGE_MODIFIER", CCS_EFFECT_RATE
        }
        CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "COUNTER_PROHIBITED", "1")
ENDSELECT

RETURN TRIGGER_ID


code:
;-------------------------------------------------
; パッシブ
;-------------------------------------------------
;戦闘開始時トークン自己付与
@CC_PASSIVESKILL_ADD_TOKEN_SELF_ON_OPENING(ACTOR_DID, TARGET_DID, XML_SKILL)
#DIM  ACTOR_DID
#DIM  TARGET_DID
#DIMS XML_SKILL

#DIM TRIGGER_ID
#DIM BLOCK
#DIM DYNAMIC SEQUENCE

;スキル処理用パラメータの初期化と取得
CALL CC_SKILL_TRIGGER_INIT(ACTOR_DID, TARGET_DID, XML_SKILL, "ADD_NEW_BLOCK_TO_BOTTOM")
TRIGGER_ID = RESULT

SELECTCASE CCS_SKILL_DEF_NAME
	CASE "OPENING_MODE_SHIFT"
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "MODE_SHIFT"
				,"VALUE", CCS_EFFECT_RATE
		}

	CASE "OPENING_ADD_CAST_TOKEN"
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "CAST"
				,"VALUE", CCS_EFFECT_RATE
		}

	CASE "OPENING_ADD_PRAYER_TOKEN"
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "PRAYER"
				,"VALUE", CCS_EFFECT_RATE
		}

	CASE "OPENING_ADD_HIDE_TOKEN", "OPENING_SHADOW_HIDDEN"
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "HIDE"
				,"VALUE", CCS_EFFECT_RATE
		}

	CASE "OPENING_ADD_WARCRY"
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "STRENGTH"
				,"VALUE", CCS_EFFECT_RATE
		}
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "PROVOKE"
				,"VALUE", CCS_EFFECT_RATE
		}
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "FRAGILE"
				,"VALUE", CCS_EFFECT_RATE2
		}
	CASE "K28_UNIQUE_SKILL_TRACKING"
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "TRACKING"
				,"VALUE", CCS_EFFECT_RATE
		}
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", TARGET_DID
				,"TOKEN_NAME", "TARGET"
				,"VALUE", CCS_EFFECT_RATE
		}

	CASE "OPENING_ADD_DRAGONIC_TOKEN"
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "DRAGONIC_EFFECT"
				,"VALUE", CCS_EFFECT_RATE
		}

	CASE "PSV_ENEMY_OPENING_ADD_BARRIER"
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "BARRIER"
				,"VALUE", CCS_EFFECT_RATE
		}

	CASE "OPENING_SHADOW_CLONING"
		CALL CC_COST_ITEM_TOCAST(ACTOR_DID, CCS_SKILL_DEF_NAME)
		IF RESULT
			CC_SE '= "Explode_2.mp3"
			{
				DT_ROW_ADD "CC_ACTION"
					,"TRIGGER_ID", TRIGGER_ID

					,"SEQUENCE", SEQUENCE++
					,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
					,"ACTOR_DID", ACTOR_DID
					,"TARGET_DID", ACTOR_DID
					,"TOKEN_NAME", "PROVOKE"
					,"VALUE", CCS_EFFECT_RATE2
			}
			{
				DT_ROW_ADD "CC_ACTION"
					,"TRIGGER_ID", TRIGGER_ID

					,"SEQUENCE", SEQUENCE++
					,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
					,"ACTOR_DID", ACTOR_DID
					,"TARGET_DID", ACTOR_DID
					,"TOKEN_NAME", "DECOY_SHADOW"
					,"VALUE", CCS_EFFECT_RATE
			}
		ELSE
			{
				DT_ROW_ADD "CC_ACTION"
					,"TRIGGER_ID", TRIGGER_ID

					,"SEQUENCE", SEQUENCE++
					,"FUNCTION_NAME", "CC_ACTION_MESSAGE"
					,"ACTOR_DID", ACTOR_DID
					,"TARGET_DID", ACTOR_DID
			}
			CALL CC_SET_ACT_FLAG_BY_ID(RESULT, "LACK_ITEM", "1")
			RETURN TRIGGER_ID
		ENDIF

	CASE "OPENIN_SHIELD_SWORD"
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "MAG_BREAK"
				,"VALUE", CCS_EFFECT_RATE
		}
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "GUARD"
				,"VALUE", CCS_EFFECT_RATE2
		}
		{
			DT_ROW_ADD "CC_ACTION"
				,"TRIGGER_ID", TRIGGER_ID
				,"SEQUENCE", SEQUENCE++
				,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
				,"ACTOR_DID", ACTOR_DID
				,"TARGET_DID", ACTOR_DID
				,"TOKEN_NAME", "PROVOKE"
				,"VALUE", CCS_EFFECT_RATE2
		}

	CASE "K29_UNIQUE_EVIL_EYE_OP" , "ENEMY_EVIL_EYE_OP"
	{
		DT_ROW_ADD "CC_ACTION"
			,"TRIGGER_ID", TRIGGER_ID
			,"SEQUENCE", SEQUENCE++
			,"FUNCTION_NAME", "CC_ACTION_ADD_SP_TOKEN"
			,"ACTOR_DID", ACTOR_DID
			,"TARGET_DID", ACTOR_DID
			,"TOKEN_NAME", "SEE_THROUGH"
			,"VALUE", CCS_EFFECT_RATE
	}
ENDSELECT

RETURN TRIGGER_ID


code:
;-------------------------------------------------
;手淫処理
;-------------------------------------------------
@CLOSE_COMBAT_HANDJOB(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
#DIM  DYNAMIC DEF_CHARA_ID

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)
CALL CC_MOLESTATION_COMMON_INIT(DEF_CHARA_ID)

VARI ESTRUS_LV = 1
ESTRUS_LV += CC_SP_TOKEN_NUM(DEFENDER_DID, "ESTRUS")

ABL:DEF_CHARA_ID:倒錯度 += 2
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_奉仕されたい += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_辱められたい += 1

SOURCE:DEF_CHARA_ID:接触 = 50
SOURCE:DEF_CHARA_ID:性行動 = 180
SOURCE:DEF_CHARA_ID:屈従 = 50
SOURCE:DEF_CHARA_ID:快Ｐ += RAND(100,200) * (ESTRUS_LV)

CALL CC_TEXT_HANDJOB_BEFORE(ATTACKER_DID, DEFENDER_DID)
;ダメージ
RETURN 60 + RAND:10

;-------------------------------------------------
;地の文(前文)
;-------------------------------------------------
@CC_TEXT_HANDJOB_BEFORE(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIMS DYNAMIC ATK_CHARA_NAME
#DIMS DYNAMIC DEF_CHARA_NAME
#DIM  DYNAMIC ATK_CHARA_ID
#DIM  DYNAMIC DEF_CHARA_ID

#DIMS DYNAMIC 性器描写
#DIMS DYNAMIC 淫乱描写
#DIMS DYNAMIC 対象名

ATK_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", ATTACKER_DID, "CHARA_NAME", 1)%
DEF_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", DEFENDER_DID, "CHARA_NAME", 1)%
ATK_CHARA_ID = DT_CELL_GET("CC_ACTOR", ATTACKER_DID, "CHARA_ID", 1)
DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)

SIF IS_PIERCED(DEF_CHARA_ID, ピアス_ペニス)
	性器描写 '= "ピアスの取り付けられた"
性器描写 += 語彙_ペニス()
対象名 = %DEF_CHARA_NAME%

淫乱描写 = %S_R("淫猥な手つきで/蠱惑的な視線で/うっとりとした表情を浮かべながら、/淫らな笑みを浮かべて、/恍惚とした表情で、/とろんとした目つきで、")%
{
	CALL CC_PRINT_RANDC(
		TEXT_CONCATEC(
		@"%ATK_CHARA_NAME%は", 1
		,@"%淫乱描写%%対象名%の%性器描写%を", 1
		,@"%S_R("扱いて責め立て/にちゃにちゃと音を立てて責め立て/指を絡めるように扱き上げ/上下に擦りあげ")%", 1
		,@"%TARGET_STR("た", "てきた")%…", 1
		), 1
		,TEXT_CONCATEC(
		@"%ATK_CHARA_NAME%は", 1
		,@"%淫乱描写%%対象名%の%性器描写%", 1
		,@"%S_R("を息を荒げながら無心に磨り上げ/の先端に情欲に帯びた吐息を浴びせながら、擦りあげ/指を艶かしく絡めてさすり上げ/激しく上下にさすり上げ")%", 1
		,@"%TARGET_STR("た", "てきた")%…", 1
		), 淫乱描写 != ""
		,TEXT_CONCATEC(
		@"%ATK_CHARA_NAME%は", 1
		,@"%淫乱描写%%対象名%の%性器描写%", 1
		,@"%S_R("をつかんで/に指を絡めて/を優しく握って")%", 1
		,@"%S_R("前後にすりあげ/上下にさすっ/扱き上げ")%", 1
		,@"%TARGET_STR("た", "てきた")%…", 1
		),
		)
}

{
	CALL CC_PRINT_RANDC(
		TEXT_CONCATE(
		@"%ATK_CHARA_NAME%の"
		,@"%S_R("艶めかしい感触が/感触が/生地の感触が")%、"
		,@"%DEF_CHARA_NAME%の"
		,@"%S_R("ペニスを刺激する/性感を刺激する/劣情を煽り立てる")%…"
		), 1
		)
}


code:
;-------------------------------------------------
;オナニー処理
;-------------------------------------------------
@CLOSE_COMBAT_MASTRUBATE(ATK_CHARA_ID, VALUEBASE)
;キャラ情報
#DIM  DYNAMIC VALUEBASE
#DIM  DYNAMIC ATK_CHARA_ID
#DIM  DYNAMIC 被覆衣装部位
#DIM  DYNAMIC 被覆衣装ID
#DIMS DYNAMIC 被覆衣装描写
#DIMS クリ描写

CALL CC_MOLESTATION_COMMON_INIT(ATK_CHARA_ID)

EXP:ATK_CHARA_ID:自慰経験値 += VALUEBASE

ABL:ATK_CHARA_ID:倒錯度 += VALUEBASE / 2
SEXUAL_PREFERENCE_EXP:ATK_CHARA_ID:性的嗜好_辱められたい += VALUEBASE
SEXUAL_PREFERENCE_EXP:ATK_CHARA_ID:性的嗜好_露出したい += VALUEBASE
BASE:ATK_CHARA_ID:体力 -= 10 * VALUEBASE

SOURCE:ATK_CHARA_ID:露出 = 300 * VALUEBASE
SOURCE:ATK_CHARA_ID:屈従 = 25 * VALUEBASE
SOURCE:ATK_CHARA_ID:性行動 = 100 * VALUEBASE
SOURCE:ATK_CHARA_ID:屈従 = 30 * VALUEBASE

VALUEBASE = VALUEBASE * 200
SELECTCASE ABL:ATK_CHARA_ID:自慰
	CASE 0
		TIMES VALUEBASE, 1.00
	CASE 1
		TIMES VALUEBASE, 1.20
	CASE 2
		TIMES VALUEBASE, 1.50
	CASE 3
		TIMES VALUEBASE, 1.80
	CASE 4
		TIMES VALUEBASE, 2.00
	CASEELSE
		VALUEBASE = VALUEBASE * (420 + (ABL:ATK_CHARA_ID:自慰 - 5)) / 200
ENDSELECT

SIF GETBIT(TALENT:ATK_CHARA_ID:淫乱系, 素質_淫乱_自慰狂い)
	TIMES VALUEBASE, 2.0
;下着で秘部が覆われているか確認する
CALL IS_COVERED(ATK_CHARA_ID, 被覆部位_秘部, 1)
被覆衣装部位 = RESULT:0
被覆衣装ID = RESULT:1
IF (被覆衣装部位 == 衣装部位_下着下) || (被覆衣装部位 == 衣装部位_上下下着)
	TRYCCALLFORM CLOTH_DESC_%CLOTH_PART_NAME_ENG:被覆衣装部位%_{被覆衣装ID}
		被覆衣装描写 '= RESULTS
	CATCH
		TRYCCALLFORM CLOTH_NAME_%CLOTH_PART_NAME_ENG:被覆衣装部位%_{被覆衣装ID}
			被覆衣装描写 '= RESULTS
		CATCH
		ENDCATCH
	ENDCATCH
ELSE
	被覆衣装描写 '= ""
ENDIF

クリ描写 '= @"%STR_BODY("クリ：欲情", ATK_CHARA_ID)%"
LOCALS:0 '= @"自身の指で%SPLIT_RAND(@"劣情を慰め/自身を慰め/%クリ描写%を弄り回し")%"
LOCALS:2 = %ANAME(ATK_CHARA_ID)%

IF HAS_PENIS(ATK_CHARA_ID)
	SOURCE:ATK_CHARA_ID:快Ｐ = SENSE_HOUSHI_P(ATK_CHARA_ID, ATK_CHARA_ID, VALUEBASE * 5 / 3)
	IF (被覆衣装描写 != "")
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:2%は%被覆衣装描写%%SPLIT_RAND("の上から/越しに/の中に手を入れて",1)%、自分自身を慰めた…@/C@")
	ELSE
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:2%は自身の%語彙_ペニス()%を手でしごき、自分自身を慰めた…@/C@")
	ENDIF
	IF ABL:(ATK_CHARA_ID):自慰 >= 5 || GETBIT(TALENT:(ATK_CHARA_ID):淫乱系, 素質_淫乱_自慰狂い)
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(ATK_CHARA_ID)%はすっかりオナニーに没頭し、激しく%語彙_ペニス()%をしごいて自ら快感を貪っている@/C@")
	ELSEIF ABL:(ATK_CHARA_ID):露出 >= 5
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(ATK_CHARA_ID)%は見られることで興奮しているのか、上気した顔で%語彙_ペニス()%をしごいている@/C@")
	ELSEIF ABL:(ATK_CHARA_ID):自慰 >= 2
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(ATK_CHARA_ID)%は恥ずかしそうにしているが、無意識に快感を求めるように%語彙_ペニス()%をしごいている@/C@")
	ELSE
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(ATK_CHARA_ID)%は恥ずかしさのあまり目を逸らしながら、おぼつかない手付きで%語彙_ペニス()%をこすり上げた@/C@")
	ENDIF
ELSE
	SOURCE:ATK_CHARA_ID:快Ｃ = SENSE_HOUSHI(ATK_CHARA_ID, ATK_CHARA_ID, VALUEBASE)
	SOURCE:ATK_CHARA_ID:快Ｂ = SENSE_HOUSHI(ATK_CHARA_ID, ATK_CHARA_ID, VALUEBASE / 2)
	IF (被覆衣装描写 != "")
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:2%は%被覆衣装描写%%SPLIT_RAND("の上から/越しに/を指でずらし/の中に手を入れて",1)%、自分自身を慰めた…@/C@")
	ELSE
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:2%は、自分自身を慰めた…@/C@")
	ENDIF
	IF ABL:ATK_CHARA_ID:自慰 >= 5 || GETBIT(TALENT:ATK_CHARA_ID:淫乱系, 素質_淫乱_自慰狂い)
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(ATK_CHARA_ID)%はすっかりオナニーに没頭し、激しく指を動かして自ら快感を貪っている@/C@")
	ELSEIF ABL:ATK_CHARA_ID:露出 >= 5
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(ATK_CHARA_ID)%は見られることで興奮しているのか、上気した顔で指を動かしている@/C@")
	ELSEIF ABL:ATK_CHARA_ID:自慰 >= 2
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(ATK_CHARA_ID)%は恥ずかしそうにしているが、無意識に快感を求めるように指を動かしている@/C@")
	ELSE
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(ATK_CHARA_ID)%は恥ずかしさのあまり目を逸らしながら、おぼつかない手付きで自分の体に指を這わせた@/C@")
	ENDIF
ENDIF


code:
;-------------------------------------------------
;愛撫処理
;-------------------------------------------------
@CLOSE_COMBAT_MOLESTATION(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
#DIM  DYNAMIC DEF_CHARA_ID

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)
CALL CC_MOLESTATION_COMMON_INIT(DEF_CHARA_ID)

VARI ESTRUS_LV = 1
ESTRUS_LV += CC_SP_TOKEN_NUM(DEFENDER_DID, "ESTRUS")

ABL:DEF_CHARA_ID:倒錯度 += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_辱められたい += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_愛撫されたい += 1

SOURCE:DEF_CHARA_ID:露出 = 100
SOURCE:DEF_CHARA_ID:接触 = 100
SOURCE:DEF_CHARA_ID:性行動 = 180
SOURCE:DEF_CHARA_ID:快Ｃ += RAND(150,200) * (ESTRUS_LV)

CALL CC_TEXT_MOLESTATION_BEFORE(ATTACKER_DID, DEFENDER_DID)
CALL CC_TEXT_MOLESTATION_LAST(ATTACKER_DID, DEFENDER_DID)
RETURN 60 + RAND:10
;-------------------------------------------------
;地の文(前文)
;-------------------------------------------------
@CC_TEXT_MOLESTATION_BEFORE(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIM  DYNAMIC ATK_CHARA_ID
#DIM  DYNAMIC DEF_CHARA_ID
#DIMS DYNAMIC ATK_CHARA_NAME
#DIMS DYNAMIC DEF_CHARA_NAME

#DIMS DYNAMIC 実行名
#DIMS DYNAMIC 対象名
#DIMS DYNAMIC 下着描写
#DIMS DYNAMIC 潤滑描写
#DIMS DYNAMIC 性器描写

ATK_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", ATTACKER_DID, "CHARA_NAME", 1)%
DEF_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", DEFENDER_DID, "CHARA_NAME", 1)%
ATK_CHARA_ID = DT_CELL_GET("CC_ACTOR", ATTACKER_DID, "CHARA_ID", 1)
DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)

下着描写 = %C_COND_MAP_GETS(DEF_CHARA_ID, "被覆衣装描写_秘部_下着")%
IF IS_ESTRUS(DEF_CHARA_ID, 8) && IS_WET(DEF_CHARA_ID)
	潤滑描写 = %S_R("びしょびしょに濡れた/濡れそぼった/すっかりぬめりを帯びた/ぐっしょりとした/とろとろに湿った")%
ENDIF

IF HAS_PENIS(DEF_CHARA_ID)
	性器描写 = %BAR_NAME(DEF_CHARA_ID)%
ELSE
	性器描写 = %S_R(@"%STR_BODY("クリ：感度：装飾", DEF_CHARA_ID)%/%STR_BODY("陰唇：感度：装飾", DEF_CHARA_ID)%")%
ENDIF

対象名 = %DEF_CHARA_NAME%

実行名 = %ATK_CHARA_NAME%

{
	CALL CC_PRINT_RANDC(
		@"%実行名%は%対象名%の肌に指を這わせ撫で回し%TARGET_STR("た", "てきた")%…", 1
		,@"%実行名%は%対象名%の肌にいやらしく指を這わせ撫で回し%TARGET_STR("た", "てきた")%…", CFLAG:(DEF_CHARA_ID):凌辱被害者フラグ
		,@"%実行名%は%対象名%の%潤滑描写%%下着描写%の上から、秘部に指を這わせ撫で回し%TARGET_STR("た", "てきた")%…", 下着描写 != ""
		,@"%実行名%は%対象名%の%下着描写%の中に手を這わせ、%性器描写%に指を這わせ撫で回し%TARGET_STR("た", "てきた")%…", 下着描写 != ""
		,@"%実行名%は%対象名%の%潤滑描写%%下着描写%の中に指を這わせ、%性器描写%を割れ目にそってなぞりあげ%TARGET_STR("た", "てきた")%…", 下着描写 != "" && !HAS_PENIS(DEF_CHARA_ID)
		,@"%実行名%は%対象名%の%下着描写%の中に指を這わせ、%性器描写%を弄っ%TARGET_STR("た", "てきた")%…", 下着描写 != "" && !HAS_PENIS(DEF_CHARA_ID)
		,@"%実行名%は%対象名%の%下着描写%の上から、%潤滑描写%%性器描写%を、わざと水音が響くように撫で回し%TARGET_STR("た", "てきた")%…", 下着描写 != "" && !HAS_PENIS(DEF_CHARA_ID)
		,@"%実行名%は%対象名%の%下着描写%の上から、%潤滑描写%%性器描写%を、わざとくちゅくちゅと水音を立てて撫で回し%TARGET_STR("た", "てきた")%…", 下着描写 != "" && !HAS_PENIS(DEF_CHARA_ID)
		,@"%実行名%は%対象名%の内腿からゆっくりと指を這わせ、%潤滑描写%%性器描写%に指の腹をあてると、執拗に弄ん%TARGET_STR("だ", "できた")%…", 下着描写 == "" && !HAS_PENIS(DEF_CHARA_ID)
		,@"%実行名%は%対象名%の%潤滑描写%%下着描写%の上から、%性器描写%の先端を指で弄ん%TARGET_STR("た", "てきた")%…", 下着描写 != "" && HAS_PENIS(DEF_CHARA_ID)
		,@"%実行名%は%対象名%の%下着描写%の上から、%性器描写%の鈴口をなぞるように指で愛撫し%TARGET_STR("た", "てきた")%…", 下着描写 != "" && HAS_PENIS(DEF_CHARA_ID)
		,@"%実行名%は%対象名%の%下着描写%の中に手を伸ばし、%性器描写%に指を絡めて、ゆっくりと上下に摩り上げ%TARGET_STR("た", "てきた")%…", 下着描写 != "" && HAS_PENIS(DEF_CHARA_ID)
		)
}
IF !HAS_PENIS(DEF_CHARA_ID)
	{
		CALL CC_PRINT_RANDC(
			@"%性器描写%を指でなぞられる度に%対象名%は",
			,@"%実行名%が指をクロッチに%S_R("沈めて/押し当て/這わせて")%すりあげるたびに%対象名%は、", C_COND("衣装属性:秘部_下着:パンティ",,DEF_CHARA_ID)
			,@"%実行名%が指先を下着の中に滑り込ませて%語彙_秘貝()%を撫で回すと、%対象名%は", C_COND("衣装属性:秘部_下着:パンティ",,DEF_CHARA_ID)
			,@"%実行名%が下着の上から割れ目に沿って指先をゆっくりと這わせると、%対象名%は", C_COND("衣装属性:秘部_下着:パンティ",,DEF_CHARA_ID)
			,@"%実行名%が鼠径部から秘部の柔肉に向かって指先を這わせると、%対象名%は", C_COND("衣装属性:秘部_下着:パンティ",,DEF_CHARA_ID)
			,@"%実行名%が下着の中に手を差し入れて尻から秘部をなぞると%対象名%は", C_COND("衣装属性:秘部_下着:パンティ",,DEF_CHARA_ID)
			)
	}
	{
		CALL CC_PRINT_SAME_LINE_RANDC(RESULT
			,@"嫌悪のあまり顔をしかめ、食いしばってこらえている", CHECK_EMOTION(DEF_CHARA_ID, "NEGATIVE") && !IS_ESTRUS(DEF_CHARA_ID)
			,@"嫌悪を滲ませているものの、抗いがたい快楽に時折切なげな声を漏らしている", CHECK_EMOTION(DEF_CHARA_ID, "NEGATIVE") && IS_ESTRUS(DEF_CHARA_ID)
			,@"快楽に身を任せて%S_R("切なげな吐息を漏らしている/喘いでいる/熱い息を漏らしている")%", CHECK_EMOTION(DEF_CHARA_ID, "GOOD")
			,@"快楽に身を震わせて淫らに腰をくねらせ、さらなる快楽を求めている", CHECK_EMOTION(DEF_CHARA_ID, "GOOD") && IS_ESTRUS(DEF_CHARA_ID)
			,@"身体をぴくりと震わせて、刺激をこらえている", !CHECK_EMOTION(DEF_CHARA_ID, "NEGATIVE") && !CHECK_EMOTION(DEF_CHARA_ID, "GOOD")
			,@"", 1
			)
	}
ENDIF

;--------------------------------------------------------
;次に地の文(原パラメータ・刻印変動後)
;--------------------------------------------------------
@CC_TEXT_MOLESTATION_LAST(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIM  DYNAMIC DEF_CHARA_ID

#DIM  DYNAMIC 対象
#DIMS DYNAMIC 実行名
#DIMS DYNAMIC 対象名
#DIM  DYNAMIC 快感合計
#DIMS DYNAMIC 下着描写
#DIMS DYNAMIC 潤滑描写
#DIMS DYNAMIC 性器描写

VARSET LOCAL

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)

下着描写 = %C_COND_MAP_GETS(DEF_CHARA_ID, "被覆衣装描写_秘部_下着")%
IF IS_ESTRUS(DEF_CHARA_ID, 8) && IS_WET(DEF_CHARA_ID)
	潤滑描写 = %S_R("びしょびしょに濡れた/濡れそぼった/すっかりぬめりを帯びた/ぐっしょりとした/とろとろに湿った")%
ENDIF

IF HAS_PENIS(DEF_CHARA_ID)
	性器描写 = %BAR_NAME(DEF_CHARA_ID)%
ELSE
	性器描写 = %S_R(@"%STR_BODY("クリ：感度：装飾", DEF_CHARA_ID)%/%STR_BODY("陰唇：感度：装飾", DEF_CHARA_ID)%")%
ENDIF

対象 = DEF_CHARA_ID
対象名 = %ANAME(対象)%

IF ((対象 != MASTER || CONFIG:441) && !IS_ANIMAL(対象)) && !IS_ANIMAL(対象)
	快感合計 = CUP:(対象):快Ｃ + CUP:(対象):快Ｂ + CUP:(対象):快Ｍ

	IF TCVAR:(対象):52 || CC_SP_TOKEN_NUM(DEFENDER_DID, "ORGASM") > 0 || CC_SP_TOKEN_NUM(DEFENDER_DID, "STUN") > 0
		;気絶中
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(対象)%は意識を失ったままビクビクと体を震わせている@/C@")
	ELSEIF 快感合計 < 100
		IF TALENT:(対象):反抗的
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(対象)%は愛撫されながらも反抗的な態度を取っている@/C@")
		ELSE
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(対象)%はむずかゆそうに身体をよじるが快楽を感じるまでには至っていないようだ@/C@")
		ENDIF
	ELSEIF 快感合計 < 300
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(対象)%はこちらの愛撫に反応して身体を震わせている@/C@")
	ELSEIF 快感合計 < 1000
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(対象)%は軽い電撃でも身体に走ったかのように小さく震えた@/C@")
	ELSEIF 快感合計 < 3000
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(対象)%は明らかに快楽を感じている様子で艶やかな喘ぎ声をあげている@/C@")
	ELSEIF 快感合計 < 6000
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(対象)%は愛撫に激しく快楽を感じ、自らせがむように手を首にまわしてきた@/C@")
	ELSE
		{
			CALL CC_PRINT_RANDC(
				@"%対象名%はこちらの愛撫だけで激しく身体を震わせて感じており、さらなる刺激を求めてしなだれかかってきた", 1
				,@"%対象名%はすっかり身体を預け、撫で擦られる度に甘い吐息を漏らしてされるがままになっている", 1
				,@"%対象名%は素肌に少し指が触れるだけで吐息を荒らげ、肩を震わせ享楽に浸っている", 1
				,@"%対象名%は幼く敏感な柔肌をなぞられる度に肩を震わせ、荒い吐息を漏らしている", TALENT:対象:体格 == 体格_子供
				,@"%対象名%は素肌を撫で擦られる度に小さな肢体をふるふると震わせ、悦楽に浸っている", TALENT:対象:体格 <= 体格_小柄
				,@"%対象名%の%潤滑描写%%性器描写%から指の腹を持ち上げると、%語彙_愛液()%が%下着描写%と指の間で糸を引いた", 下着描写 != "" && 潤滑描写 != "" && !HAS_PENIS(対象)
				)
		}
	ENDIF
ENDIF


code:
;-------------------------------------------------
;胸愛撫処理
;-------------------------------------------------
@CLOSE_COMBAT_MOLESTATION_BREAST(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
#DIM  DYNAMIC DEF_CHARA_ID

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)
CALL CC_MOLESTATION_COMMON_INIT(DEF_CHARA_ID)

VARI ESTRUS_LV = 1
VARI SOURCE_BASE
ESTRUS_LV += CC_SP_TOKEN_NUM(DEFENDER_DID, "ESTRUS")

ABL:DEF_CHARA_ID:倒錯度 += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_辱められたい += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_愛撫されたい += 1

SOURCE:DEF_CHARA_ID:露出 = 100
SOURCE:DEF_CHARA_ID:接触 = 60
SOURCE:DEF_CHARA_ID:性行動 = 180
SOURCE_BASE = RAND(100,200) * (ESTRUS_LV)

CALL CC_TEXT_MOLESTATION_BREAST_BEFORE(ATTACKER_DID, DEFENDER_DID)
CALL CC_TEXT_MOLESTATION_BREAST_LAST(ATTACKER_DID, DEFENDER_DID)
RETURN 60 + RAND:10
;-------------------------------------------------
;地の文(前文)
;-------------------------------------------------
@CC_TEXT_MOLESTATION_BREAST_BEFORE(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIMS DYNAMIC ATK_CHARA_NAME
#DIMS DYNAMIC DEF_CHARA_NAME
#DIM  DYNAMIC ATK_CHARA_ID
#DIM  DYNAMIC DEF_CHARA_ID
#DIM  DYNAMIC ENEMY_TYPE

#DIMS DYNAMIC 実行名
#DIMS DYNAMIC 対象名
#DIMS DYNAMIC 胸描写
#DIMS DYNAMIC TEXT

ATK_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", ATTACKER_DID, "CHARA_NAME", 1)%
DEF_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", DEFENDER_DID, "CHARA_NAME", 1)%
ATK_CHARA_ID = DT_CELL_GET("CC_ACTOR", ATTACKER_DID, "CHARA_ID", 1)
DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)
ENEMY_TYPE = DT_CELL_GET("CC_ACTOR", ATTACKER_DID, "ENEMY_TYPE", 1)

対象名 = %DEF_CHARA_NAME%
実行名 = %ATK_CHARA_NAME%

胸描写 = %STR_BODY("胸", DEF_CHARA_ID)%

IF GROUPMATCH(ENEMY_TYPE, ENEMY_TYPE_不定形, ENEMY_TYPE_蟲)
	TEXT '= @"@C:{カラー_ピンク}@%実行名%は%対象名%の%STR_BODY("胸：長：感触", DEF_CHARA_ID)%の上をねっとりと這い回った…@/C@"
	CALL CC_PRINT(TEXT)
ELSE
	IF IS_MALE(DEF_CHARA_ID)
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%実行名%は%対象名%の%胸描写%を指先で弄り回した…@/C@")
	ELSE
		IF GET_BUSTSIZE(DEF_CHARA_ID) == -2
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%実行名%は%対象名%の%STR_BODY("胸：長：愛撫", DEF_CHARA_ID)%をゆっくりと撫で回した…@/C@")
		ELSEIF GET_BUSTSIZE(DEF_CHARA_ID) == -1
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%実行名%は%対象名%の%STR_BODY("胸：長：愛撫", DEF_CHARA_ID)%をじっくりと弄んだ…@/C@")
		ELSE
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%実行名%は%対象名%の%STR_BODY("胸：長：愛撫", DEF_CHARA_ID)%をじっくりと揉みしだいた…@/C@")
		ENDIF
	ENDIF
ENDIF

;--------------------------------------------------------
;次に地の文(原パラメータ・刻印変動後)
;--------------------------------------------------------
@CC_TEXT_MOLESTATION_BREAST_LAST(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIM  DYNAMIC DEF_CHARA_ID
#DIMS DYNAMIC 衣装描写
VARSET LOCAL

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)

LOCAL:1 = DEF_CHARA_ID

IF (LOCAL:1 != MASTER || CONFIG:441) && !IS_ANIMAL(LOCAL:1)
	LOCAL:2 = PALAM:(LOCAL:1):快Ｂ

	IF IS_MALE(LOCAL:1)
		IF TCVAR:(LOCAL:1):失神フラグ || CC_SP_TOKEN_NUM(DEFENDER_DID, "ORGASM") > 0 || CC_SP_TOKEN_NUM(DEFENDER_DID, "STUN") > 0
			;気絶中
			CALL CC_PRINT(@"@C:{カラー_ピンク}@意識を失った%ANAME(LOCAL:1)%は胸への刺激にビクリと小さく体を震わせた@/C@")
		ELSEIF LOCAL:2 < 300
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%はまだ胸で快楽を感じれるまでには至っていないようだ@/C@")
		ELSEIF LOCAL:2 < 1000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は少しずつ快感を感じ始めているらしく、むず痒そうに体をよじった@/C@")
		ELSEIF LOCAL:2 < 3000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は胸への刺激に感じているのか、熱い吐息を漏らし始めている@/C@")
		ELSEIF LOCAL:2 < 6000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は胸への快感に表情を緩ませ、されるがままになっている@/C@")
		ELSEIF LOCAL:2 < 10000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は感じまくっており、胸を揉まれるたびに激しく悶えている@/C@")
		ELSE
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%はすっかり乳房の快感の虜になり、胸を揉まれると女のように身体を跳ねさせて悶えた@/C@")
		ENDIF
	ELSE
		IF TCVAR:(LOCAL:1):失神フラグ || CC_SP_TOKEN_NUM(DEFENDER_DID, "ORGASM") > 0 || CC_SP_TOKEN_NUM(DEFENDER_DID, "STUN") > 0
			;気絶中
			CALL CC_PRINT(@"@C:{カラー_ピンク}@意識を失った%ANAME(LOCAL:1)%は胸への刺激にビクリと小さく体を震わせた@/C@")
		ELSEIF LOCAL:2 < 300
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%はまだ胸で快楽を感じれるまでには至っていないようだ@/C@")
		ELSEIF LOCAL:2 < 1000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は少しずつ快感を感じ始めているらしく、むず痒そうに体をよじった@/C@")
		ELSEIF LOCAL:2 < 3000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の胸を揉み続けてやると乳首は固くしこっていき、熱い吐息を漏らし始めている@/C@")
		ELSEIF LOCAL:2 < 6000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は胸への愛撫にトロンとした表情になってされるがままになっている@/C@")
		ELSEIF LOCAL:2 < 10000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は感じまくっており、胸への刺激だけで法悦を極めようとしている@/C@")
		ELSE
			IF GET_BUSTSIZE(LOCAL:1) == 1
				CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の胸を揉み続けてやるとそれだけで感じまくって身体を跳ねさせ、目の前でその巨乳を弾ませてこちらの目を楽しませてくれた@/C@")
			ELSEIF GET_BUSTSIZE(LOCAL:1) >= 2
				CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の胸を揉み続けてやるとそれだけで感じまくって身体を跳ねさせ、目の前でその%TOSTR_BUSTSIZE(GET_BUSTSIZE(LOCAL:1))%を大きく弾ませてこちらの目を楽しませてくれた@/C@")
			ELSE
				CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の胸を揉み続けてやるとそれだけで感じまくって身体を跳ねさせ、緩んだ表情で快楽に身を任せた@/C@")
			ENDIF
		ENDIF
	ENDIF
	IF C_COND("衣装属性:胸_下着:薄生地",,LOCAL:1)
		衣装描写 = %C_COND_MAP_GETS(LOCAL:1, "被覆衣装描写_胸_下着")%
		IF LOCAL:2 > 6000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の乳首は快感ですっかリ熱を帯び、%衣装描写%の薄い生地の下からはっきりわかる程に%S_R("主張してしまっている/ピンと張っている")%@/C@")
		ENDIF
	ENDIF
ENDIF


code:
;-------------------------------------------------
;乳首責め処理
;-------------------------------------------------
@CLOSE_COMBAT_MOLESTATION_NIPPLE(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
#DIM  DYNAMIC DEF_CHARA_ID

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)
CALL CC_MOLESTATION_COMMON_INIT(DEF_CHARA_ID)

VARI ESTRUS_LV = 1
ESTRUS_LV += CC_SP_TOKEN_NUM(DEFENDER_DID, "ESTRUS")

ABL:DEF_CHARA_ID:倒錯度 += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_辱められたい += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_愛撫されたい += 1

SOURCE:DEF_CHARA_ID:露出 = 110
SOURCE:DEF_CHARA_ID:接触 = 80
SOURCE:DEF_CHARA_ID:性行動 = 200
SOURCE:DEF_CHARA_ID:快Ｂ += RAND(150,200) * (ESTRUS_LV)

CALL CC_TEXT_MOLESTATION_NIPPLE_BEFORE(ATTACKER_DID, DEFENDER_DID)
CALL CC_TEXT_MOLESTATION_NIPPLE_LAST(ATTACKER_DID, DEFENDER_DID)
RETURN 120 + RAND:20
;-------------------------------------------------
;地の文(前文)
;-------------------------------------------------
@CC_TEXT_MOLESTATION_NIPPLE_BEFORE(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIMS DYNAMIC ATK_CHARA_NAME
#DIMS DYNAMIC DEF_CHARA_NAME
#DIM  DYNAMIC ATK_CHARA_ID
#DIM  DYNAMIC DEF_CHARA_ID

ATK_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", ATTACKER_DID, "CHARA_NAME", 1)%
DEF_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", DEFENDER_DID, "CHARA_NAME", 1)%
ATK_CHARA_ID = DT_CELL_GET("CC_ACTOR", ATTACKER_DID, "CHARA_ID", 1)
DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)

LOCALS:1 = %DEF_CHARA_NAME%
IF IS_PIERCED(DEF_CHARA_ID, ピアス_乳首)
	LOCALS:2 = ピアスの取り付けられた
ELSE
	LOCALS:2 =
ENDIF
LOCALS:0 = %ATK_CHARA_NAME%

IF IS_MALE(DEF_CHARA_ID)
	CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%LOCALS:2%ぷっくりと膨らんだ乳首を指先で弄り回し%TARGET_STR("た", "てきた")%…@/C@")
ELSE
	IF GET_BUSTSIZE(DEF_CHARA_ID) == -2
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%STR_BODY("乳首：欲情：感度", DEF_CHARA_ID)%をゆっくりと撫で回し%TARGET_STR("た", "てきた")%…@/C@")
	ELSE
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%STR_BODY("乳首：欲情：感度", DEF_CHARA_ID)%をじっくりと指で弄ん%TARGET_STR("だ", "できた")%…@/C@")
	ENDIF
ENDIF

;--------------------------------------------------------
;次に地の文(原パラメータ・刻印変動後)
;--------------------------------------------------------
@CC_TEXT_MOLESTATION_NIPPLE_LAST(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIM  DYNAMIC DEF_CHARA_ID

#DIMS DYNAMIC 衣装描写

VARSET LOCAL

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)

LOCAL:1 = DEF_CHARA_ID

IF (LOCAL:1 != MASTER || CONFIG:441) && !IS_ANIMAL(LOCAL:1)
	LOCAL:2 = PALAM:(LOCAL:1):快Ｂ

	IF IS_MALE(LOCAL:1)
		IF TCVAR:(LOCAL:1):失神フラグ || CC_SP_TOKEN_NUM(DEFENDER_DID, "ORGASM") > 0 || CC_SP_TOKEN_NUM(DEFENDER_DID, "STUN") > 0
			;気絶中
			CALL CC_PRINT(@"@C:{カラー_ピンク}@意識を失った%ANAME(LOCAL:1)%は乳首への刺激にビクリと小さく体を震わせた@/C@")
		ELSEIF LOCAL:2 < 300
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%はまだ乳首で快楽を感じれるまでには至っていないようだ@/C@")
		ELSEIF LOCAL:2 < 1000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は少しずつ快感を感じ始めているらしく、むず痒そうに体をよじった@/C@")
		ELSEIF LOCAL:2 < 3000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は乳首への刺激に感じているのか、熱い吐息を漏らし始めている@/C@")
		ELSEIF LOCAL:2 < 6000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は乳首への快感に表情を緩ませ、されるがままになっている@/C@")
		ELSEIF LOCAL:2 < 10000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は感じまくっており、乳首を弾かれるたびに激しく悶えている@/C@")
		ELSE
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%はすっかり乳首の快感の虜になり、乳首をこね回されると女のように身体を跳ねさせて悶えた@/C@")
		ENDIF
	ELSE
		IF TCVAR:(LOCAL:1):失神フラグ || CC_SP_TOKEN_NUM(DEFENDER_DID, "ORGASM") > 0 || CC_SP_TOKEN_NUM(DEFENDER_DID, "STUN") > 0
			;気絶中
			CALL CC_PRINT(@"@C:{カラー_ピンク}@意識を失った%ANAME(LOCAL:1)%は乳首への刺激にビクリと小さく体を震わせた@/C@")
		ELSEIF LOCAL:2 < 300
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%はまだ乳首で快楽を感じれるまでには至っていないようだ@/C@")
		ELSEIF LOCAL:2 < 1000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は少しずつ快感を感じ始めているらしく、むず痒そうに体をよじった@/C@")
		ELSEIF LOCAL:2 < 3000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の乳首を嬲り続けてやると乳首は固くしこっていき、熱い吐息を漏らし始めている@/C@")
		ELSEIF LOCAL:2 < 6000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は乳首への刺激にトロンとした表情になってされるがままになっている@/C@")
		ELSEIF LOCAL:2 < 10000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は感じまくっており、乳首への刺激だけで法悦を極めようとしている@/C@")
		ELSE
			IF GET_BUSTSIZE(LOCAL:1) == 1
				CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の乳首を弄り続けてやるとそれだけで感じまくって身体を跳ねさせ、目の前でその巨乳を弾ませてこちらの目を楽しませてくれた@/C@")
			ELSEIF GET_BUSTSIZE(LOCAL:1) >= 2
				CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の乳首を弄り続けてやるとそれだけで感じまくって身体を跳ねさせ、目の前でその%TOSTR_BUSTSIZE(GET_BUSTSIZE(LOCAL:1))%を大きく弾ませてこちらの目を楽しませてくれた@/C@")
			ELSE
				CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の乳首を弄り続けてやるとそれだけで感じまくって身体を跳ねさせ、緩んだ表情で快楽に身を任せた@/C@")
			ENDIF
		ENDIF
	ENDIF
	IF C_COND("衣装属性:胸_下着:薄生地",,LOCAL:1)
		衣装描写 = %C_COND_MAP_GETS(LOCAL:1, "被覆衣装描写_胸_下着")%
		IF LOCAL:2 > 6000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の乳首は快感ですっかリ熱を帯び、%衣装描写%の薄い生地の下からはっきりわかる程に%S_R("主張してしまっている/ピンと張っている")%@/C@")
		ENDIF
	ENDIF
ENDIF


code:
;-------------------------------------------------
;乳首吸い処理
;-------------------------------------------------
@CLOSE_COMBAT_MOLESTATION_NIPPLE_SUCK(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
#DIM  DYNAMIC DEF_CHARA_ID

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)
CALL CC_MOLESTATION_COMMON_INIT(DEF_CHARA_ID)

VARI ESTRUS_LV = 1
ESTRUS_LV += CC_SP_TOKEN_NUM(DEFENDER_DID, "ESTRUS")

ABL:DEF_CHARA_ID:倒錯度 += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_辱められたい += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_愛撫されたい += 1

SOURCE:DEF_CHARA_ID:露出 = 100
SOURCE:DEF_CHARA_ID:接触 = 60
SOURCE:DEF_CHARA_ID:性行動 = 240
SOURCE:DEF_CHARA_ID:快Ｂ += RAND(150,200) * (ESTRUS_LV)

CALL CC_TEXT_MOLESTATION_NIPPLE_SUCK_BEFORE(ATTACKER_DID, DEFENDER_DID)
CALL CC_TEXT_MOLESTATION_NIPPLE_SUCK_LAST(ATTACKER_DID, DEFENDER_DID)
RETURN 60 + RAND:10
;-------------------------------------------------
;地の文(前文)
;-------------------------------------------------
@CC_TEXT_MOLESTATION_NIPPLE_SUCK_BEFORE(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIMS DYNAMIC ATK_CHARA_NAME
#DIMS DYNAMIC DEF_CHARA_NAME
#DIM  DYNAMIC ATK_CHARA_ID
#DIM  DYNAMIC DEF_CHARA_ID

ATK_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", ATTACKER_DID, "CHARA_NAME", 1)%
DEF_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", DEFENDER_DID, "CHARA_NAME", 1)%
ATK_CHARA_ID = DT_CELL_GET("CC_ACTOR", ATTACKER_DID, "CHARA_ID", 1)
DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)

LOCALS:1 = %DEF_CHARA_NAME%
IF IS_PIERCED(DEF_CHARA_ID, ピアス_乳首)
	LOCALS:2 = ピアスの取り付けられた
ELSE
	LOCALS:2 =
ENDIF
LOCALS:0 = %ATK_CHARA_NAME%

IF IS_MALE(DEF_CHARA_ID)
	CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%LOCALS:2%ぷっくりと膨らんだ乳首を口内で吸引し%TARGET_STR("た", "てきた")%…@/C@")
ELSE
	SELECTCASE GET_BUSTSIZE(DEF_CHARA_ID)
		CASE -2
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%LOCALS:2%まっ平らな胸をゆっくりと吸い上げ%TARGET_STR("た", "てきた")%…@/C@")
		CASE -1
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%LOCALS:2%小さな胸をじっくりと吸い上げ%TARGET_STR("だ", "できた")%…@/C@")
		CASE 0
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%LOCALS:2%適度な大きさの胸をじっくりと吸い上げ%TARGET_STR("た", "てきた")%…@/C@")
		CASE 1
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%LOCALS:2%巨乳をじっくりと吸い上げ%TARGET_STR("た", "てきた")%…@/C@")
		CASE 2
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%LOCALS:2%手から溢れるほど大きな胸をじっくりと吸い上げ%TARGET_STR("た", "てきた")%…@/C@")
		CASE 3
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%LOCALS:2%手から溢れるほど大きな胸をじっくりと吸い上げ%TARGET_STR("た", "てきた")%…@/C@")
		CASE 4
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%LOCALS:0%は%LOCALS:1%の%LOCALS:2%手から溢れるほど大きな胸をじっくりと吸い上げ%TARGET_STR("た", "てきた")%…@/C@")
	ENDSELECT
ENDIF

;--------------------------------------------------------
;次に地の文(原パラメータ・刻印変動後)
;--------------------------------------------------------
@CC_TEXT_MOLESTATION_NIPPLE_SUCK_LAST(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIM  DYNAMIC DEF_CHARA_ID
#DIMS DYNAMIC ATK_CHARA_NAME

VARSET LOCAL

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)
ATK_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", ATTACKER_DID, "CHARA_NAME", 1)%

LOCAL:1 = DEF_CHARA_ID

IF (LOCAL:1 != MASTER || CONFIG:441) && !IS_ANIMAL(LOCAL:1)
	LOCAL:2 = PALAM:(LOCAL:1):快Ｂ

	IF IS_MALE(LOCAL:1)
		IF TCVAR:(LOCAL:1):失神フラグ || CC_SP_TOKEN_NUM(DEFENDER_DID, "ORGASM") > 0 || CC_SP_TOKEN_NUM(DEFENDER_DID, "STUN") > 0
			;気絶中
			CALL CC_PRINT(@"@C:{カラー_ピンク}@意識を失った%ANAME(LOCAL:1)%は乳首への刺激にビクリと小さく体を震わせた@/C@")
		ELSEIF LOCAL:2 < 300
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%はまだ乳首で快楽を感じれるまでには至っていないようだ@/C@")
		ELSEIF LOCAL:2 < 1000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は少しずつ快感を感じ始めているらしく、むず痒そうに体をよじった@/C@")
		ELSEIF LOCAL:2 < 3000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は乳首への刺激に感じているのか、熱い吐息を漏らし始めている@/C@")
		ELSEIF LOCAL:2 < 6000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は乳首への快感に表情を緩ませ、されるがままになっている@/C@")
		ELSEIF LOCAL:2 < 10000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は感じまくっており、乳首を弾かれるたびに激しく悶えている@/C@")
		ELSE
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%はすっかり乳首への快感の虜になり、乳首を吸われると女のように身体を跳ねさせて悶えた@/C@")
		ENDIF
	ELSE
		IF TCVAR:(LOCAL:1):失神フラグ || CC_SP_TOKEN_NUM(DEFENDER_DID, "ORGASM") > 0 || CC_SP_TOKEN_NUM(DEFENDER_DID, "STUN") > 0
			;気絶中
			CALL CC_PRINT(@"@C:{カラー_ピンク}@意識を失った%ANAME(LOCAL:1)%は胸への刺激にビクリと小さく体を震わせた@/C@")
		ELSEIF LOCAL:2 < 300
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%はまだ胸で快楽を感じれるまでには至っていないようだ@/C@")
		ELSEIF LOCAL:2 < 1000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は少しずつ快感を感じ始めているらしく、むず痒そうに体をよじった@/C@")
		ELSEIF LOCAL:2 < 3000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の胸を吸い続けてやると乳首は固くしこっていき、熱い吐息を漏らし始めている@/C@")
		ELSEIF LOCAL:2 < 6000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は乳首への愛撫にトロンとした表情になってされるがままになっている@/C@")
		ELSEIF LOCAL:2 < 10000
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は感じまくっており、胸への刺激だけで法悦を極めようとしている@/C@")
		ELSE
			IF GET_BUSTSIZE(LOCAL:1) == 1
				CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の胸を吸い続けてやるとそれだけで感じまくって身体を跳ねさせ、目の前でその巨乳を弾ませてこちらの目を楽しませてくれた@/C@")
			ELSEIF GET_BUSTSIZE(LOCAL:1) >= 2
				CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の胸を吸い続けてやるとそれだけで感じまくって身体を跳ねさせ、目の前でその%TOSTR_BUSTSIZE(GET_BUSTSIZE(LOCAL:1))%を大きく弾ませてこちらの目を楽しませてくれた@/C@")
			ELSE
				CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の胸を吸い続けてやるとそれだけで感じまくって身体を跳ねさせ、緩んだ表情で快楽に身を任せた@/C@")
			ENDIF
		ENDIF
	ENDIF
	IF NOWEX:(LOCAL:1):噴乳 > 0
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ATK_CHARA_NAME%は%ANAME(LOCAL:1)%の胸に深く顔をうずめて、%SPLIT_RAND("じゅるじゅると音を立て/無心に乳首にしゃぶりついて/乳首を舌でねぶりながら",1)%吹き出した母乳をすすっている……@/C@")
	ENDIF
ENDIF


code:
;-------------------------------------------------
;指挿入れ処理
;-------------------------------------------------
@CLOSE_COMBAT_MOLESTATION_PUSSY(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
#DIM  DYNAMIC DEF_CHARA_ID

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)
CALL CC_MOLESTATION_COMMON_INIT(DEF_CHARA_ID)

VARI ESTRUS_LV = 1
ESTRUS_LV += CC_SP_TOKEN_NUM(DEFENDER_DID, "ESTRUS")

ABL:DEF_CHARA_ID:倒錯度 += 2
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_辱められたい += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_愛撫されたい += 1

SOURCE:DEF_CHARA_ID:露出 = 80
SOURCE:DEF_CHARA_ID:接触 = 60
SOURCE:DEF_CHARA_ID:性行動 = 300
SOURCE:DEF_CHARA_ID:屈従 = 50
VARI 快楽加算値
快楽加算値 = RAND(150,200) * (ESTRUS_LV)
IF TALENT:DEF_CHARA_ID:処女 == 1
	TIMES 快楽加算値, 0.75
ENDIF
SOURCE:DEF_CHARA_ID:快Ｖ += 快楽加算値

CALL CC_TEXT_MOLESTATION_PUSSY_BEFORE(ATTACKER_DID, DEFENDER_DID)
CALL CC_TEXT_MOLESTATION_PUSSY_LAST(ATTACKER_DID, DEFENDER_DID)
RETURN 60 + RAND:10
;-------------------------------------------------
;地の文(前文)
;-------------------------------------------------
@CC_TEXT_MOLESTATION_PUSSY_BEFORE(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIMS DYNAMIC ATK_CHARA_NAME
#DIMS DYNAMIC DEF_CHARA_NAME
#DIM  DYNAMIC ATK_CHARA_ID
#DIM  DYNAMIC DEF_CHARA_ID

ATK_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", ATTACKER_DID, "CHARA_NAME", 1)%
DEF_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", DEFENDER_DID, "CHARA_NAME", 1)%
ATK_CHARA_ID = DT_CELL_GET("CC_ACTOR", ATTACKER_DID, "CHARA_ID", 1)
DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)

IF IS_PIERCED(DEF_CHARA_ID, ピアス_ラビア)
	LOCALS:1 = ピアスの取り付けられた
ELSE
	LOCALS:1 =
ENDIF
LOCALS:0 = %DEF_CHARA_NAME%

IF IS_EQUIP_TARGET(DEF_CHARA_ID, 61)
	CALL CC_PRINT(@"@C:{カラー_ピンク}@%ATK_CHARA_NAME%は%LOCALS:0%の%LOCALS:1%秘所で振動するバイブを抜き差しして責め立て%TARGET_STR("た", "てきた")%…@/C@")
ELSEIF TALENT:(DEF_CHARA_ID):処女 == 1
	CALL CC_PRINT(@"@C:{カラー_ピンク}@%ATK_CHARA_NAME%は%LOCALS:0%の処女膜を指先でなぞるようにして弄ん%TARGET_STR("だ", "できた")%…@/C@")
ELSEIF PALAM:(DEF_CHARA_ID):潤滑 > PALAMLV:5
	CALL CC_PRINT(@"@C:{カラー_ピンク}@%ATK_CHARA_NAME%は%LOCALS:0%の%LOCALS:1%濡れそぼった秘唇に指を挿れて内部を弄り回し%TARGET_STR("た", "てきた")%…@/C@")
ELSE
	CALL CC_PRINT(@"@C:{カラー_ピンク}@%ATK_CHARA_NAME%は%LOCALS:0%の%LOCALS:1%秘唇に指を挿れて中を弄り回し%TARGET_STR("た", "てきた")%…@/C@")
ENDIF

IF !IS_EQUIP_TARGET(DEF_CHARA_ID, 61) && CUM_CUR_AMOUNT:(DEF_CHARA_ID):射精部位_膣内
	CALL CC_PRINT(@"@C:{カラー_ピンク}@%SPLIT_RAND("熱い/粘つく/濃厚な/新鮮な", 1)%精液が%DEF_CHARA_NAME%から溢れ出た…@/C@")
ENDIF

;--------------------------------------------------------
;次に地の文(原パラメータ・刻印変動後)
;--------------------------------------------------------
@CC_TEXT_MOLESTATION_PUSSY_LAST(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIM  DYNAMIC DEF_CHARA_ID

VARSET LOCAL

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)

LOCAL:1 = DEF_CHARA_ID

IF (LOCAL:1 != MASTER || CONFIG:441) && !IS_ANIMAL(LOCAL:1)
	LOCAL:2 = PALAM:(LOCAL:1):快Ｖ

	IF TCVAR:(LOCAL:1):失神フラグ || CC_SP_TOKEN_NUM(DEFENDER_DID, "ORGASM") > 0 || CC_SP_TOKEN_NUM(DEFENDER_DID, "STUN") > 0
		;気絶中
		CALL CC_PRINT(@"@C:{カラー_ピンク}@膣内を責められると、%ANAME(LOCAL:1)%は意識を失ったまま小さく呻いた@/C@")
	ELSEIF LOCAL:2 < 300
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%の開発されていないそこはまだキツく、%ANAME(LOCAL:1)%は苦しそうに顔を歪めた@/C@")
	ELSEIF LOCAL:2 < 1000
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は苦しそうにしながらもその表情には快楽の兆しが見える@/C@")
	ELSEIF LOCAL:2 < 3000
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%はこらえきれない快楽に可愛らしい声を漏らしている@/C@")
	ELSEIF LOCAL:2 < 6000
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は大分慣れてきたのか、時折自ら快楽を求めるように小さく腰を揺らしている@/C@")
	ELSEIF LOCAL:2 < 10000
		IF TALENT:(LOCAL:1):抑圧 || TALENT:(LOCAL:1):孤高 || TALENT:(LOCAL:1):快感の否定
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は快楽を否定する言葉を吐きつつ、こらえ切れない喘ぎ声を上げ続けている@/C@")
		ELSE
			CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は翻弄する指の動きに合わせて背中を反らしながら快楽の喘ぎ声を上げた@/C@")
		ENDIF
	ELSE
		CALL CC_PRINT(@"@C:{カラー_ピンク}@%ANAME(LOCAL:1)%は淫らに腰を揺らしながら、すっかり快楽に溺れて嬌声を上げている@/C@")
	ENDIF
ENDIF


code:
;-------------------------------------------------
;指挿入れ処理
;-------------------------------------------------
@CLOSE_COMBAT_MOLESTATION_TAMA(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
#DIM  DYNAMIC DEF_CHARA_ID

DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)
CALL CC_MOLESTATION_COMMON_INIT(DEF_CHARA_ID)

VARI ESTRUS_LV = 1
ESTRUS_LV += CC_SP_TOKEN_NUM(DEFENDER_DID, "ESTRUS")

ABL:DEF_CHARA_ID:倒錯度 += 2
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_奉仕されたい += 1
SEXUAL_PREFERENCE_EXP:DEF_CHARA_ID:性的嗜好_辱められたい += 1

SOURCE:DEF_CHARA_ID:接触 = 50
SOURCE:DEF_CHARA_ID:性行動 = 180
SOURCE:DEF_CHARA_ID:屈従 = 50
SOURCE:DEF_CHARA_ID:快Ｐ += RAND(150,300) * (ESTRUS_LV)

CALL CC_TEXT_MOLESTATION_TAMA_BEFORE(ATTACKER_DID, DEFENDER_DID)
RETURN 60 + RAND:10
;-------------------------------------------------
;地の文(前文)
;-------------------------------------------------
@CC_TEXT_MOLESTATION_TAMA_BEFORE(ATTACKER_DID, DEFENDER_DID)
#DIM ATTACKER_DID
#DIM DEFENDER_DID
;キャラ情報
#DIMS DYNAMIC ATK_CHARA_NAME
#DIMS DYNAMIC DEF_CHARA_NAME
#DIM  DYNAMIC ATK_CHARA_ID
#DIM  DYNAMIC DEF_CHARA_ID

ATK_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", ATTACKER_DID, "CHARA_NAME", 1)%
DEF_CHARA_NAME = %DT_CELL_GETS("CC_ACTOR", DEFENDER_DID, "CHARA_NAME", 1)%
ATK_CHARA_ID = DT_CELL_GET("CC_ACTOR", ATTACKER_DID, "CHARA_ID", 1)
DEF_CHARA_ID = DT_CELL_GET("CC_ACTOR", DEFENDER_DID, "CHARA_ID", 1)

LOCALS:0 = うっとりとした表情を浮かべながら、

CALL CC_PRINT(@"@C:{カラー_ピンク}@%ATK_CHARA_NAME%の指が%DEF_CHARA_NAME%の睾丸の下へ当てられた……@/C@")
CALL CC_PRINT(@"@C:{カラー_ピンク}@%ATK_CHARA_NAME%は%LOCALS:0%%DEF_CHARA_NAME%の睾丸を優しく揉みしだいて責め立て%TARGET_STR("た", "てきた")%…@/C@")