public override void ExecuteEffect()
    {
        TypeUsageChannel typeChannel = (TypeUsageChannel)skillChannel.typeUsage;

        //Ask the soulbehaviour to make a copy of itself with the skill it represents
        StateChanneling newState = new StateChanneling(chrTarget, typeChannel.nStartChannelTime, typeChannel.soulBehaviour.GetCopy(skillChannel));

        //We don't need to perform any real action on starting channeling other than changing our readiness state so that the
        // soulchannel effect can be applied (and do any on-application effects if necessary)
        chrTarget.SetStateReadiness(newState);

        fDelay = ContTime.fDelayTurnSkill;
        sLabel = chrTarget.sName + " is beginning their channel";
    }
    // This is the end of the section that should be copied and pasted


    public override void ExecuteEffect()
    {
        Debug.Log("Executing ExecCompleteChannel");


        fDelay = ContTime.fDelayTurnSkill;
        sLabel = chrTarget.sName + " has completed their channel";

        StateChanneling stateChannel = (StateChanneling)chrTarget.curStateReadiness;

        Debug.Log("Setting the bChannelCompleted flag");

        //Set the completed channel flag for this Channeling state's soul effect
        stateChannel.soulBehaviour.bChannelCompleted = true;

        StateFatigued newState = new StateFatigued(chrTarget);

        //Transition into a fatigued state which will trigger the expiration effect
        chrTarget.SetStateReadiness(newState);
    }