Skip to content

Instantly share code, notes, and snippets.

@eur0pa
Created October 8, 2015 12:01
Show Gist options
  • Save eur0pa/de1862ea3be5e84cc3b8 to your computer and use it in GitHub Desktop.
Save eur0pa/de1862ea3be5e84cc3b8 to your computer and use it in GitHub Desktop.

Revisions

  1. eur0pa created this gist Oct 8, 2015.
    402 changes: 402 additions & 0 deletions mgsv_tpp_nuclear_disarmament_dump.lua
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,402 @@

    -- -------------------------------------------------------------------------- --
    -- in: TppDefine.lua
    -- -------------------------------------------------------------------------- --

    -- list of cutscenes available upon returning to mother base
    -- ordered by priority
    _.MB_FREEPLAY_DEMO_PRIORITY_LIST={
    "GoToMotherBaseAfterQuietBattle", -- quiet's heli fight
    "ArrivedMotherBaseAfterQuietBattle", -- quiet's arrival
    "ArrivedMotherBaseFromDeathFactory",
    "ArrivedMotherBaseLiquid",
    "QuietReceivesPersecution", -- quiet's fight with soldiers
    "TheGreatEscapeLiquid",
    "ParasiticWormCarrierKill",
    "AnableDevBattleGear",
    "DevelopedBattleGear1",
    "QuietHasFriendshipWithChild", -- quiet's cutscene: shabani's necklace
    "QuietOnHeliInRain", -- quiet's rain cutscene
    "InterrogateQuiet", -- quiet's salt water torture
    "DecisionHuey", -- huey's interrogation
    "EntrustDdog",
    "DdogComeToGet",
    "DdogGoWithMe",
    "HappyBirthDayWithQuiet", -- snake's bday w/ quiet
    "HappyBirthDay", -- snake's bday w/o quiet
    "AttackedFromOtherPlayer_KnowWhereFrom",
    "AttackedFromOtherPlayer_UnknowWhereFrom",
    "QuietWishGoMission", -- quiet's first mission
    "NuclearEliminationCeremony", -- <<< NUCLEAR
    "ForKeepNuclearElimination", -- <<< NUCLEAR
    "SacrificeOfNuclearElimination", -- <<< NUCLEAR
    "MoraleOfMBIsLow",
    "EliLookSnake",
    "LiquidAndChildSoldier",
    "OcelotIsPupilOfSnake",
    "CodeTalkerSunBath",
    "LongTimeNoSee_DdogSuperHighLikability",
    "LongTimeNoSee_DdogHighLikability",
    "LongTimeNoSee_DdogLowLikability",
    "LongTimeNoSee_DdogPup",
    "LongTimeNoSee_DDSoldier",
    "SnakeHasBadSmell_000", -- quiet's shower scene (arrival)
    "SnakeHasBadSmell_001", -- quiet's shower scene (her cell)
    "SnakeHasBadSmell_WithoutQuiet",
    "PazPhantomPain1",
    "PazPhantomPain2",
    "PazPhantomPain4",
    "PazPhantomPain4_jp", -- paz's censored (jp) cutscene
    "DetailsNuclearDevelop", -- <<< NUCLEAR
    "EndingSacrificeOfNuclear", -- <<< NUCLEAR
    "DevelopedBattleGear2",
    "DevelopedBattleGear4",
    "DevelopedBattleGear5",
    "ArrivedMotherBaseChildren"
    }

    -- list of radio calls inviting (forcing) the player to return to mother base
    -- in order to watch these cutscenes:
    _.FORCE_MB_RETURN_RADIO_LIST={
    "OpenDecisionHuey", -- huey's interrogation
    "EliImprisonment",
    "PermitParasiticWormCarrierKill",
    "InterrogateQuietRadio", -- quiet's interrogation
    "QuietHasFriendshipWithChildRadio", -- shabani's necklace
    "AnableDevBattleGearRadio",
    "ParasiticWormCarrierQuarantine",
    "CompliteDevelopBattleGearRadio",
    "DevelopedBattleGear_1Radio",
    "EliLookSnakeRadio",
    "EntrustDdogRadio",
    "DdogComeToGetRadio",
    "DdogGoWithMeRadio",
    "HappyBirthDayRadio", -- snake's bday
    "AttackedFromOtherPlayerRadio",
    "NuclearEliminationCeremonyRadio", -- <<< NUCLEAR
    "MoraleOfMBIsLowRadio",
    "GeneralPurposeRadio",
    "QuietReceivesPersecutionRadio" -- quiet's fight with soldiers
    }

    -- ???
    _.MB_FREEPLAY_LARGEDEMO={
    "GoToMotherBaseAfterQuietBattle",
    "NuclearEliminationCeremony", -- <<< NUCLEAR
    "DecisionHuey",
    "InterrogateQuiet",
    "TheGreatEscapeLiquid"
    }

    -- player stats enum
    _.RANKING_ENUM=Tpp.Enum{
    "TotalTacticalTakeDownCount",
    "XPersonMarkingTime",
    "FirstHeadShotTime",
    "FirstHeadShotTimeTranq",
    "FirstCommandPostAnnihilateTime",
    "CboxGlidingDistance",
    "MechaNeutralizeCount",
    "LongestBirdShotDistance",
    "XPersonPerfectStealthCQCNeutralizeTime",
    "XRocketArmNeutralizeTime",
    "FobSneakingGoalCount",
    "FobDefenceSucceedCount",
    "NuclearDisposeCount", -- <<< [12]
    "mtbs_q42010",
    "mtbs_q42020",
    "mtbs_q42030",
    "mtbs_q42040",
    "mtbs_q42050",
    "mtbs_q42060",
    "mtbs_q42070"
    }


    -- -------------------------------------------------------------------------- --
    -- in: TppDemo.lua (cutscenes)
    -- -------------------------------------------------------------------------- --

    e.mtbsPriorityFuncList={

    -- ... snip ...

    NuclearEliminationCeremony=function()
    if not gvars.f30050_isInitNuclearAbolitionCount then
    return false
    end

    local n=TppStory.GetCurrentStorySequence() >= TppDefine.STORY_SEQUENCE.CLEARD_OKB_ZERO
    local e=TppServerManager.GetNuclearAbolitionCount()
    local a=e >= 0
    local e=gvars.f30050_NuclearAbolitionCount < e

    if (a and n) and e then
    if vars.mbmIsNuclearDeveloping == 0 and TppMotherBaseManagement.GetResourceUsableCount{resource="NuclearWeapon"} == 0 then
    return true
    else
    gvars.f30050_needUpdateNuclearFlag=true
    return false
    end
    end

    return false
    end,

    ForKeepNuclearElimination=function()
    return false
    end,

    SacrificeOfNuclearElimination=function()
    return false
    end

    DetailsNuclearDevelop=function()
    return false
    end,

    EndingSacrificeOfNuclear=function()
    return false
    end

    } -- e.mtbsPriorityFuncList{}

    function e.UpdateNuclearAbolitionFlag()
    if gvars.f30050_needUpdateNuclearFlag then
    gvars.f30050_NuclearAbolitionCount=TppServerManager.GetNuclearAbolitionCount()
    gvars.f30050_discardNuclearCountFromLastAbolition=TppMotherBaseManagement.GetResourceUsableCount{resource="NuclearWaste"}
    gvars.f30050_needUpdateNuclearFlag=false
    end
    end


    -- -------------------------------------------------------------------------- --
    -- in: TppGVars.lua (globals)
    -- -------------------------------------------------------------------------- --

    -- seen in TppDemo.lua:e.UpdateNuclearAbolitionFlag()
    -- will update the other 'f30050' vars if asked to
    {name="f30050_needUpdateNuclearFlag",type=TppScriptVars.TYPE_BOOL,value=false,save=false}

    -- seen in TppDemo.lua:NuclearEliminationCeremony()
    {name="f30050_NuclearAbolitionCount",type=TppScriptVars.TYPE_UINT32,value=0,save=true,category=TppScriptVars.CATEGORY_MISSION},
    {name="f30050_isInitNuclearAbolitionCount",type=TppScriptVars.TYPE_BOOL,value=false,save=true,category=TppScriptVars.CATEGORY_MISSION},
    {name="f30050_discardNuclearCountFromLastAbolition",type=TppScriptVars.TYPE_UINT32,value=0,save=true,category=TppScriptVars.CATEGORY_MISSION}

    -- should just be stats
    {name="rnk_NuclearDisposeCount",type=TppScriptVars.TYPE_UINT32,value=0,save=true,category=TppScriptVars.CATEGORY_GAME_GLOBAL}


    -- -------------------------------------------------------------------------- --
    -- in: TppHero.lua (hero / demon points)
    -- -------------------------------------------------------------------------- --

    -- +1508 hero points, -1509 demon points for each nuclear disarmament
    e.NuclearAbolition={heroicPoint=5e4,ogrePoint=-5e5}


    -- -------------------------------------------------------------------------- --
    -- in: TppMain.lua
    -- -------------------------------------------------------------------------- --

    -- line 232: calls the function in TppDemo.lua
    TppDemo.UpdateNuclearAbolitionFlag()


    -- -------------------------------------------------------------------------- --
    -- in: TppMbFreeDemo.lua
    -- -------------------------------------------------------------------------- --

    NuclearEliminationCeremony="p51_020010_000_final",
    DetailsNuclearDevelop="p51_020030_01movie",
    ForKeepNuclearElimination="p51_020020_000_final",
    SacrificeOfNuclearElimination="p51_020040_000_final",
    EndingSacrificeOfNuclear="p51_020030_02movie"

    -- ...

    NuclearEliminationCeremony={"/Assets/tpp/pack/mission2/free/f30050/f30050_d1000.fpk"},
    DetailsNuclearDevelop={"/Assets/tpp/pack/mission2/free/f30050/f30050_m20030.fpk"},
    ForKeepNuclearElimination={"/Assets/tpp/pack/mission2/free/f30050/f30050_d1010.fpk"},
    SacrificeOfNuclearElimination={"/Assets/tpp/pack/mission2/free/f30050/f30050_d1020.fpk"},
    EndingSacrificeOfNuclear={"/Assets/tpp/pack/mission2/free/f30050/f30050_m20031.fpk"}

    -- ...

    NuclearEliminationCeremony={
    weather=TppDefine.WEATHER.SUNNY,
    time="17:20:00",
    GetNextDemoNameOrNil=function()
    if TppMotherBaseManagement.IsNuclearDeveloped() then
    return"DetailsNuclearDevelop"
    elseif TppMotherBaseManagement.IsNuclearDiscarded() then
    return"ForKeepNuclearElimination"
    else
    return"SacrificeOfNuclearElimination"
    end
    end,

    OnEnter=function()
    TppPlayer.Refresh()
    PlatformConfiguration.SetShareScreenEnabled(false)

    function f30050_sequence.FinishNuclearAbolitionEndint()
    TppUiStatusManager.UnsetStatus("AnnounceLog","INVALID_LOG")
    PlatformConfiguration.SetShareScreenEnabled(true)
    TppSoundDaemon.ResetMute"Result"
    f30050_sequence.ReserveMissionClear()

    local e=TppMotherBaseManagement.GetResourceUsableCount{resource="NuclearWaste"}
    if gvars.f30050_discardNuclearCountFromLastAbolition < e then
    TppHero.SetAndAnnounceHeroicOgrePoint(TppHero.NuclearAbolition,nil,"announce_nuclear_zero")
    end

    gvars.f30050_discardNuclearCountFromLastAbolition=e
    end
    end,

    telopLangIdList={"area_demo_mb","platform_main"}
    },

    ForKeepNuclearElimination={
    weather=TppDefine.WEATHER.SUNNY,
    time="17:45:00",
    GetNextDemoNameOrNil=function()
    return"SacrificeOfNuclearElimination"
    end,

    clusterName="Medical",
    OnEnter=function()
    TppDataUtility.SetVisibleDataFromIdentifier("uq_0040_AssetIdentifier","mtbs_antn001_0001",false,false)
    end,

    OnEnd=function()
    TppDataUtility.SetVisibleDataFromIdentifier("uq_0040_AssetIdentifier","mtbs_antn001_0001",true,false)
    end
    },

    SacrificeOfNuclearElimination={
    weather=TppDefine.WEATHER.SUNNY,time="10:00:00",
    clusterName="Develop",
    GetNextDemoNameOrNil=function()
    return"EndingSacrificeOfNuclear"
    end,

    OnEnter=function()
    Player.SetPause()
    TppDataUtility.SetVisibleDataFromIdentifier("MtbsCommon","sahelan_spl",false,false)
    end,

    OnEnd=function()
    TppSoundDaemon.SetMute"Result"
    end
    },

    DetailsNuclearDevelop={
    isMovie=true,
    OnEnter=function()
    TppSoundDaemon.SetMute"Result"
    end,

    GetNextDemoNameOrNil=function()
    if TppMotherBaseManagement.IsNuclearDiscarded() then
    return"ForKeepNuclearElimination"
    else
    return"SacrificeOfNuclearElimination"
    end
    end},

    EndingSacrificeOfNuclear={
    isMovie=true,
    OnEnter=function()
    TppSound.SetSceneBGM"bgm_nuclear_ending"
    TppUiCommand.NukeCountDownText("set","cmmn_nuclear_weapon_num",5,166666,15)
    end,

    OnEnd=function()
    local e=TppServerManager.GetNuclearAbolitionCount()
    if e > 0 then
    gvars.f30050_NuclearAbolitionCount=e
    end
    TppUiCommand.NukeCountDownText"reset"
    end
    },

    -- -------------------------------------------------------------------------- --
    -- in: TppMission.lua
    -- -------------------------------------------------------------------------- --

    UI={
    {msg="EndTelopCast",
    func=function()
    if mvars.f30050_demoName == "NuclearEliminationCeremony" then
    return
    end
    --- ...

    -- line 1938:
    local n=TppMotherBaseManagement.GetResourceUsableCount{resource="NuclearWaste"}
    TppRanking.UpdateScore("NuclearDisposeCount",n)
    TppRanking.SendCurrentRankingScore()


    -- -------------------------------------------------------------------------- --
    -- in: TppStory.lua
    -- -------------------------------------------------------------------------- --

    NuclearEliminationCeremony={
    storyCondition=function()
    return true
    end,
    detailCondition=function()
    return TppDemo.mtbsPriorityFuncList.NuclearEliminationCeremony()
    end,
    demoName="NuclearEliminationCeremony"
    },

    NuclearEliminationCeremonyRadio={
    storyCondition=function(e)
    return e.demoName == "NuclearEliminationCeremony"
    end,
    detailCondition=function()
    return true
    end

    NuclearWorld={
    storyCondition=function()
    local t=TppServerManager.GetNuclearAbolitionCount()
    local n=TppServerManager.GetNuclearNum()
    local e=TppDemo.IsPlayedMBEventDemo"NuclearEliminationCeremony"

    if (t ~= -1) then
    if (e) and (n > 0) then
    return true
    end
    end

    return false
    end,

    detailCondition=function()
    return TppMission.IsHelicopterSpace(TppMission.GetMissionID())
    end,

    radioList={"f2000_rtrg1525"}
    },


    -- -------------------------------------------------------------------------- --
    -- in: TppTerminal.lua
    -- -------------------------------------------------------------------------- --

    function e.InitNuclearAbolitionCount()
    if not gvars.f30050_isInitNuclearAbolitionCount then
    if TppStory.GetCurrentStorySequence() >= TppDefine.STORY_SEQUENCE.CLEARD_OKB_ZERO then
    local e=TppServerManager.GetNuclearAbolitionCount()
    if e >= 0 then
    gvars.f30050_NuclearAbolitionCount=e
    gvars.f30050_isInitNuclearAbolitionCount=true
    end
    end
    end
    end