Advertisement
legacy163

afftracker.lua

Jul 26th, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 20.98 KB | None | 0 0
  1. --[[
  2.  
  3. Aff tracking system             Created by: Kikon
  4.  
  5. This contains all the code for affliction tracking on an opponent. The plan
  6. is to expand it to cover limb damage as well.
  7.  
  8. Requirements:
  9.    CONFIG IGNOREOFFBALCURES ON
  10.  
  11. --]]
  12.  
  13. -- Definitions.
  14.  
  15. local AFF_CURE = 1
  16. local AFF_CURE_AUX = 2
  17. local AFF_TYPE = 3
  18. local AFF_PRIORITY = 4
  19. local AFF_RANDOM_CURE = 5
  20. local AFF_MENTAL_CURE = 6
  21. local AFF_PHYS_CURE = 7
  22.  
  23. -- All globals that require initialization should be set here.
  24.  
  25. aff_tracker = true             -- Switch for tracking afflictions on a target.
  26. track_all_players = true       -- Switch for tracking everyone, or just your target.
  27.  
  28. local enemy_afflictions = {}   -- Table for tracking enemy afflictions.
  29.  
  30.  
  31.  
  32. --[[ Basic functions for adding in afflictions and removing them. ]]--
  33.  
  34. function addAfflictionEnemy( ply, aff )
  35.  
  36.    -- Basically everything gets built from here, so this is the main function in a way.
  37.  
  38.    if aff_tracker == false then
  39.       return
  40.    end
  41.    
  42.    if track_all_players == false and GetVariable( "tar" ) ~= ply then
  43.       return
  44.    end
  45.  
  46.    if affDB[aff] == nil then
  47.       ColourTell( "red", "black", "Unknown affliction to track: " )
  48.       Note( aff )
  49.       return
  50.    end
  51.    
  52.    if enemy_afflictions[ply] == nil then
  53.       enemy_afflictions[ply] = {}
  54.    end
  55.    
  56.    if haveAfflictionEnemy( ply, aff ) then
  57.       return
  58.    end
  59.  
  60.    table.insert( enemy_afflictions[ply], aff )
  61.    
  62.    -- Display what they have if they happen to be our target.
  63.    if ply == GetVariable("tar") then
  64.       ColourTell( "yellow", "black", string.upper(ply) .. " " )
  65.       ColourTell( "lime", "black", "(+): " )
  66.       ColourTell( whatAfflictionColour2( affDB[aff][AFF_TYPE] ), "black", aff .. " " )
  67.       ColourTell( "silver", "black", ":: " )
  68.       displayAfflictionsEnemy(ply)
  69.    end
  70.  
  71. end
  72.  
  73. function removeAfflictionEnemy( ply, aff )
  74.  
  75.    if affDB[aff] == nil then
  76.       ColourTell( "red", "black", "Unknown affliction to track: " )
  77.       Note( aff )
  78.       return
  79.    end
  80.    
  81.    if not haveAfflictionEnemy( ply, aff ) then
  82.       return
  83.    end
  84.    
  85.    local t, pos = enemy_afflictions[ply]
  86.    
  87.    for i, name in ipairs(t) do
  88.       if aff == name then
  89.          pos = i
  90.          break
  91.       end
  92.    end
  93.    
  94.    table.remove( t, pos )
  95.    
  96.    -- Display what they have if they happen to be our target.
  97.    if ply == GetVariable("tar") then
  98.       ColourTell( "yellow", "black", string.upper(ply) .. " " )
  99.       ColourTell( "red", "black", "(-): " )
  100.       ColourTell( whatAfflictionColour2( affDB[aff][AFF_TYPE] ), "black", aff .. " " )
  101.       ColourTell( "silver", "black", ":: " )
  102.       displayAfflictionsEnemy(ply)
  103.    end
  104.    
  105.    if #t == 0 then
  106.       enemy_afflictions[ply] = nil
  107.    end
  108.    
  109. end
  110.  
  111. function haveAfflictionEnemy( ply, aff )
  112.  
  113.    if enemy_afflictions[ply] == nil then
  114.       return false
  115.    end
  116.  
  117.    local t = enemy_afflictions[ply]
  118.    
  119.    for i, name in ipairs(t) do
  120.       if aff == name then
  121.          return true
  122.       end
  123.    end
  124.    
  125.    return false
  126.    
  127. end
  128.  
  129.  
  130. function resetAfflictionsEnemy( ply )
  131.  
  132.    if enemy_afflictions[ply] == nil then
  133.       return
  134.    end
  135.    
  136.    enemy_afflictions[ply] = nil
  137.  
  138. end
  139.  
  140. function resetAfflictionsEnemyAll()
  141.    enemy_afflictions = {}
  142. end
  143.  
  144.  
  145. function displayAfflictionsEnemy( ply )
  146.  
  147.    if enemy_afflictions[ply] == nil then
  148.       ColourNote( "red", "black", "none" )
  149.       return
  150.    end
  151.    
  152.    local t = enemy_afflictions[ply]
  153.    
  154.    if #t == 0 then
  155.       ColourNote( "red", "black", "none" )
  156.       return
  157.    end
  158.    
  159.    Note( table.concat( t, ", " ) )
  160.    
  161. end
  162.  
  163.  
  164.  
  165. --[[ Functions for curing off afflictions depending on what they eat, apply, etc. ]]--
  166.  
  167. function enemyAteHerb( ply, plant )
  168.  
  169.    -- Moirean eats a bloodroot leaf.
  170.  
  171.    if enemy_afflictions[ply] == nil then
  172.       return false
  173.    end
  174.    
  175.    local key = {
  176.       ["a bloodroot leaf"]        = "reaction",
  177.       ["some prickly ash bark"]   = "sanity",
  178.       ["a goldenseal root"]       = "harmony",
  179.       ["a piece of kelp"]         = "condition",
  180.       ["a lobelia seed"]          = "therapeutic",
  181.       ["a ginseng root"]          = "purifying",
  182.       ["a bellwort flower"]       = "altruism",
  183.       ["some irid moss"]          = "healing",
  184.       ["some bayberry bark"]      = "seeing",
  185.       ["a hawthorn berry"]        = "hearing",
  186.      
  187.       ["a lung slice"]            = "reaction",
  188.       ["a bladder slice"]         = "sanity",
  189.       ["a liver slice"]           = "harmony",
  190.       ["an eyeball slice"]        = "condition_undead",
  191.       ["a testis slice"]          = "therapeutic",
  192.       ["an ovary slice"]          = "purifying",
  193.       ["a castorite gland slice"] = "altruism",
  194.       ["a kidney slice"]          = "healing",
  195.       ["a stomach slice"]         = "seeing",
  196.       ["a heart slice"]           = "hearing"
  197.    }
  198.    
  199.    if key[plant] == nil then
  200.       return false
  201.    end
  202.    
  203.    local curable = {
  204.       ["reaction"] = { "paresis", "paralysis", "mirroring", "crippled_body",
  205.                        "crippled", "slickness", "heartflutter", "sandrot" },
  206.       ["sanity"] = { "sadness", "confusion", "dementia", "hallucinations",
  207.                      "paranoia", "hatred", "hypersomnia", "blood_curse",
  208.                      "blighted" },
  209.       ["harmony"] = { "self-pity", "stupidity", "dizziness", "shyness",
  210.                       "epilepsy", "impatience", "resonance", "dissonance",
  211.                       "infested" },
  212.       ["condition"] = { "baldness", "clumsiness", "magic_impaired", "hypochondria",
  213.                         "weariness", "asthma", "sensitivity", "blood_poison",
  214.                         "limp_veins" },
  215.       ["condition_undead"] = { "baldness", "clumsiness", "magic_impaired", "hypochondria",
  216.                                "weariness", "limp_veins", "sensitivity", "blood_poison",
  217.                                "asthma" },
  218.       ["therapeutic"] = { "commitment_fear", "recklessness", "masochism", "agoraphobia",
  219.                           "loneliness", "vertigo", "claustrophobia", "berserking" },
  220.       ["purifying"] = { "body_odor", "haemophilia", "sunlight_allery", "mental_disruption",
  221.                         "physical_disruption", "vomiting", "thin_blood", "wasting",
  222.                         "rend", "lethargy", "addiction" },
  223.       ["altruism"] = { "hubris", "pacifism", "peace", "lovers_effect",
  224.                        "superstition", "generosity", "justice", "soulfire" },
  225.       ["healing"] = { "idiocy", "plodding" },
  226.       ["hearing"] = { "deafness" },
  227.       ["seeing"] = { "blindness" }
  228.    }
  229.    
  230.    if curable[key[plant]] == nil then
  231.       return false
  232.    end
  233.    
  234.    local t = enemy_afflictions[ply]
  235.    local t2 = curable[key[plant]]
  236.    
  237.    for i, name in ipairs(t2) do
  238.       for _, aff in ipairs(t) do
  239.          if aff == name then
  240.             removeAfflictionEnemy( ply, aff )
  241.             return true
  242.          end
  243.       end
  244.    end
  245.  
  246.    return false
  247.    
  248. end
  249.  
  250. function enemyUsedSalve( ply, app, bpart )
  251.  
  252.    -- Moirean takes a salve of mending and rubs it on her arms.
  253.  
  254.    if enemy_afflictions[ply] == nil then
  255.       return false
  256.    end
  257.    
  258.    local application = {
  259.       ["an epidermal salve"]    = { ["head"] = { "epidermal to head" },
  260.                                     ["torso"] = { "epidermal to torso" },
  261.                                     ["body"] = { "epidermal to torso" },
  262.                                     ["skin"] = { "epidermal to torso", "epidermal to head" } },
  263.       ["a salve of mending"]    = { ["head"] = { "mending to head" },
  264.                                     ["torso"] = { "mending to torso" },
  265.                                     ["body"] = { "mending to torso" },
  266.                                     ["skin"] = { "mending to right leg", "mending to left leg", "mending to right arm", "mending to left arm", "mending to torso", "mending to head" },
  267.                                     ["legs"] = { "mending to right leg", "mending to left leg" },
  268.                                     ["arms"] = { "mending to right arm", "mending to left arm" },
  269.                                     ["left arm"] = { "mending to left arm" },
  270.                                     ["right arm"] = { "mending to right arm" },
  271.                                     ["left leg"] = { "mending to left leg" },
  272.                                     ["right leg"] = { "mending to right leg" } },
  273.      ["a salve of restoration"] = { ["head"] = { "restoration to head" },
  274.                                     ["torso"] = { "restoration to torso" },
  275.                                     ["body"] = { "restoration to torso" },
  276.                                     ["left arm"] = { "restoration to left arm" },
  277.                                     ["right arm"] = { "restoration to right arm" },
  278.                                     ["left leg"] = { "restoration to left leg" },
  279.                                     ["right leg"] = { "restoration to right leg" } },
  280.       ["a salve of mass"]       = { ["torso"] = { "mass to torso" },
  281.                                     ["body"] = { "mass to torso" },
  282.                                     ["skin"] = { "mass to torso" } },
  283.       ["a caloric salve"]       = { ["torso"] = { "caloric to torso" },
  284.                                     ["body"] = { "caloric to torso" },
  285.                                     ["skin"] = { "caloric to torso" } },
  286.                                  
  287.       ["an oculi poultice"]  = { ["head"] = { "epidermal to head" },
  288.                                  ["torso"] = { "epidermal to torso" },
  289.                                  ["skin"] = { "epidermal to torso", "epidermal to head" } },
  290.       ["an orbis poultice"]  = { ["head"] = { "mending to head" },
  291.                                  ["torso"] = { "mending to torso" },
  292.                                  ["body"] = { "mending to torso" },
  293.                                  ["skin"] = { "mending to right leg", "mending to left leg", "mending to right arm", "mending to left arm", "mending to torso", "mending to head" },
  294.                                  ["legs"] = { "mending to right leg", "mending to left leg" },
  295.                                  ["arms"] = { "mending to right arm", "mending to left arm" },
  296.                                  ["left arm"] = { "mending to left arm" },
  297.                                  ["right arm"] = { "mending to right arm" },
  298.                                  ["left leg"] = { "mending to left leg" },
  299.                                  ["right leg"] = { "mending to right leg" } },
  300.       ["a jecis poultice"]   = { ["head"] = { "restoration to head" },
  301.                                  ["torso"] = { "restoration to torso" },
  302.                                  ["body"] = { "restoration to torso" },
  303.                                  ["left arm"] = { "restoration to left arm" },
  304.                                  ["right arm"] = { "restoration to right arm" },
  305.                                  ["left leg"] = { "restoration to left leg" },
  306.                                  ["right leg"] = { "restoration to right leg" } },
  307.       ["a pueri poultice"]   = { ["torso"] = { "mass to torso" },
  308.                                  ["body"] = { "mass to torso" },
  309.                                  ["skin"] = { "mass to torso" } },
  310.       ["a fumeae poultice"]  = { ["torso"] = { "caloric to torso" },
  311.                                  ["body"] = { "caloric to torso" },
  312.                                  ["skin"] = { "caloric to torso" } }
  313.    }
  314.    
  315.    if application[app] == nil then
  316.       return false
  317.    end
  318.    
  319.    if application[app][bpart] == nil then
  320.       return false
  321.    end
  322.  
  323.    if app == "a salve of restoration" or app == "a jecis poultice" then
  324.       AddTimer( "e_restoration_" .. ply, 0, 0, 3.6, "enemySalveCured('"..ply.."','"..application[app][bpart][1].."')", 1061, ""  )
  325.       SetTimerOption( "e_restoration_" .. ply, "send_to", "12" )
  326.       return false
  327.    end
  328.    
  329.    local t = application[app][bpart]
  330.    
  331.    for i, bp in ipairs(t) do
  332.       if enemySalveCured( ply, bp ) == true then
  333.          return true
  334.       end
  335.    end
  336.    
  337.    return false
  338.    
  339. end
  340.  
  341. function enemySalveCured( ply, bpart )
  342.  
  343.    -- Salves are fucked up, what a chore...
  344.  
  345.    if enemy_afflictions[ply] == nil then
  346.       return false
  347.    end
  348.  
  349.    local curable = {
  350.       ["epidermal to head"] = { "indifference", "stuttering", "blurry_vision", "burnt_eyes",
  351.                                 "blindness", "deafness" },
  352.       ["epidermal to torso"] = { "anorexia", "gorged", "effused_blackbile", "effused_yellowbile",
  353.                                  "effused_phlegm", "effused_blood" },
  354.  
  355.       ["mending to head"] = { "head_bruised_critical", "dazzled", "destroyed_throat", "throatclaw",
  356.                               "crippled_throat", "head_bruised_moderate", "head_bruised" },
  357.       ["mending to torso"] = { "torso_bruised_critical", "selarnia", "ablaze", "cracked_ribs",
  358.                                "torso_bruised_moderate", "torso_bruised" },
  359.       ["mending to left arm"] = { "left_arm_critical_bruising", "left_arm_broken", "crushed_elbows", "left_arm_bruised_moderate",
  360.                                   "left_arm_bruised", "left_arm_dislocated" },
  361.       ["mending to right arm"] = { "right_arm_critical_bruising", "right_arm_broken", "crushed_elbows", "right_arm_bruised_moderate",
  362.                                    "right_arm_bruised", "right_arm_dislocated" },
  363.       ["mending to left leg"] = { "left_leg_bruised_critical", "left_leg_broken", "crushed_kneecaps", "left_leg_bruised_moderate",
  364.                                   "left_leg_bruised", "left_leg_dislocated" },
  365.       ["mending to right leg"] = { "right_leg_bruised_critical", "right_leg_broken", "crushed_kneecaps", "right_leg_bruised_moderate",
  366.                                    "right_leg_bruised", "right_leg_dislocated" },
  367.                                    
  368.       ["restoration to head"] = { "head_mutilated", "head_damaged" },
  369.       ["restoration to torso"] = { "torso_mutilated", "torso_damaged" },
  370.       ["restoration to left arm"] = { "left_arm_amputated", "left_arm_mutilated", "left_arm_damaged" },
  371.       ["restoration to right arm"] = { "right_arm_amputated", "right_arm_mutilated", "right_arm_damaged" },
  372.       ["restoration to left leg"] = { "left_leg_amputated", "left_leg_mutilated", "left_leg_damaged" },
  373.       ["restoration to right leg"] = { "right_leg_amputated", "right_leg_mutilated", "right_leg_damaged" },
  374.                                    
  375.       ["mass to torso"] = { "density" },
  376.      
  377.       ["caloric to torso"] = { "frozen", "shivering", "insulation" }
  378.    }
  379.    
  380.    if curable[bpart] == nil then
  381.       return false
  382.    end
  383.  
  384.    if bpart:sub( 1, 7 ) == "mending" then
  385.       local limb = string.gsub( bpart:sub(12), " ", "_" )
  386.       if haveAfflictionEnemy( ply, limb .. "_damaged" ) then
  387.          curable[bpart] = { limb .. "_bruised_critical" }
  388.       end
  389.    end
  390.    
  391.    local t = enemy_afflictions[ply]
  392.    local t2 = curable[bpart]
  393.    
  394.    for i, name in ipairs(t2) do
  395.       for _, aff in ipairs(t) do
  396.          if aff == name then
  397.             removeAfflictionEnemy( ply, aff )
  398.             return true
  399.          end
  400.       end
  401.    end
  402.    
  403.    -- Epidermal cures blind and deafness if there's nothing to fix.
  404.    if bpart == "epidermal to head" then
  405.       if haveAfflictionEnemy( ply, "blindness" ) then
  406.          addAfflictionEnemy( ply, "deafness" )
  407.       else
  408.          addAfflictionEnemy( ply, "blindness" )
  409.       end
  410.    end
  411.  
  412.    return false
  413.  
  414. end
  415.  
  416. function enemySmoked( ply, plant )
  417.  
  418.    -- Moirean takes a long drag off her pipe filled with skullcap.
  419.  
  420.    if enemy_afflictions[ply] == nil then
  421.       return false
  422.    end
  423.    
  424.    -- We won't worry about skullcap, rebounding is visible without needing to track it being smoked.
  425.    
  426.    local curable = {
  427.       ["valerian"] = { "slickness", "disfigurement" },
  428.       ["elm"]      = { "aeon", "withering", "hellsight", "deadening" },
  429.      
  430.       ["antispasmadic"] = { "slickness", "disfigurement" },
  431.       ["demulcent"]     = { "aeon", "withering", "hellsight", "deadening" }
  432.    }
  433.  
  434.    if curable[plant] == nil then
  435.       return false
  436.    end
  437.  
  438.    local t = enemy_afflictions[ply]
  439.    local t2 = curable[plant]
  440.    
  441.    for i, name in ipairs(t2) do
  442.       for _, aff in ipairs(t) do
  443.          if aff == name then
  444.             removeAfflictionEnemy( ply, aff )
  445.             return true
  446.          end
  447.       end
  448.    end
  449.    
  450.    return false
  451.  
  452. end
  453.  
  454. function enemyFocused( ply )
  455.  
  456.    -- A look of extreme focus crosses the face of Moirean.
  457.  
  458.    if enemy_afflictions[ply] == nil then
  459.       return false
  460.    end
  461.  
  462.    -- Funny thing is that impatience can be cured by focus. But it prevents it?!?!
  463.    
  464.    local focus_list = { "stupidity", "anorexia", "epilepsy", "mirroring",
  465.                         "paranoia", "hallucinations", "shyness", "stuttering",
  466.                         "dizziness", "indifference", "berserking", "pacifism",
  467.                         "lovers_effect", "hatred", "generosity", "claustrophobia",
  468.                         "vertigo", "loneliness", "agoraphobia", "masochism",
  469.                         "recklessness", "weariness", "impatience", "confusion",
  470.                         "dementia", "premonition" }
  471.  
  472.    local t = enemy_afflictions[ply]
  473.  
  474.    for i, name in ipairs(focus_list) do
  475.       for _, aff in ipairs(t) do
  476.          if aff == name then
  477.             removeAfflictionEnemy( ply, aff )
  478.             return true
  479.          end
  480.       end
  481.    end
  482.    
  483.    return false
  484.    
  485. end
  486.  
  487.  
  488.  
  489. --[[ Various utility functions. ]] --
  490.  
  491. function venomToAffliction( ply, venom )
  492.  
  493.    -- This converts a venom name into it's affliction. Good for venom based offences!
  494.  
  495.    local list = {
  496.       ["curare"] = "paralysis",
  497.       ["aconite"] = "stupidity",
  498.       ["xentio"] = "clumsiness",
  499.       ["eurypteria"] = "recklessness",
  500.       ["kalmia"] = "asthma",
  501.       ["strophanthus"] = "limp_veins",
  502.       ["digitalis"] = "shyness",
  503.       ["darkshade"] = "sunlight_allergy",
  504.       ["prefarar"] = "deafness",
  505.       ["monkshood"] = "disfigurement",
  506.       ["euphorbia"] = "vomiting",
  507.       ["colocasia"] = "magic_impaired",
  508.       ["oculus"] = "blindness",
  509.       ["hepafarin"] = "haemophilia",
  510.       ["vernalius"] = "weariness",
  511.       ["larkspur"] = "dizziness",
  512.       ["slike"] = "slickness",
  513.       ["voyria"] = "voyria",
  514.       ["gecko"] = "slickness",
  515.       ["scytherus"] = "thin_blood",
  516.       ["ouabian"] = "peace",
  517.       ["epteth"] = "left_arm_broken",
  518.       ["epseth"] = "left_leg_broken"
  519.    }
  520.  
  521.    if list[venom] == nil then
  522.       return
  523.    end
  524.  
  525.    if venom == "prefarar" and haveAfflictionEnemy( ply, "deafness" ) then
  526.       return "sensitivity"
  527.    elseif venom == "epteth" and haveAfflictionEnemy( ply, "left_arm_broken" ) then
  528.       return "right_arm_broken"
  529.    elseif venom == "epseth" and haveAfflictionEnemy( ply, "left_leg_broken" ) then
  530.       return "right_leg_broken"
  531.    end
  532.  
  533.    return list[venom]
  534.  
  535. end
  536.  
  537. function discernmentToAffliction( aff )
  538.  
  539.    -- Discernment was created before the affliction database, so it still has "fancy" names in use.
  540.  
  541.    local list = {
  542.       ["a broken left leg"] = "left_leg_broken",
  543.       ["a broken right leg"] = "right_leg_broken",
  544.       ["a broken left arm"] = "left_arm_broken",
  545.       ["a broken right arm"] = "right_arm_broken",
  546.       ["mangled head"] = "head_mangled",
  547.       ["mangled torso"] = "torso_mangled",
  548.       ["mangled left leg"] = "left_leg_mangled",
  549.       ["mangled right leg"] = "right_leg_mangled",
  550.       ["mangled left arm"] = "left_arm_mangled",
  551.       ["mangled right arm"] = "right_arm_mangled",
  552.       ["partially damaged head"] = "head_damaged",
  553.       ["partially damaged torso"] = "torso_damaged",
  554.       ["partially damaged left arm"] = "left_arm_damaged",
  555.       ["partially damaged right arm"] = "right_arm_damaged",
  556.       ["partially damaged left leg"] = "left_leg_damaged",
  557.       ["partially damaged right leg"] = "right_leg_damaged",
  558.       ["lovers"] = "lovers_effect",
  559.       ["scytherus"] = "thin_blood",
  560.       ["heart flutter"] = "heartflutter",
  561.       ["blood effusion"] = "effusion_blood",
  562.       ["phlegm effusion"] = "effusion_phlegm",
  563.       ["yellow bile effusion"] = "effusion_yellowbile",
  564.       ["black bile effusion"] = "effusion_blackbile",
  565.       ["self pity"] = "self-pity",
  566.       ["shriveled throat"] = "crippled_throat",
  567.       ["throat claw"] = "throatclaw"
  568.    }
  569.  
  570.    if list[aff] == nil then
  571.       return aff:gsub( " ", "_" )
  572.    end
  573.  
  574.    return list[aff]
  575.  
  576. end
  577.  
  578. function vibrationToAffliction( vibe )
  579.  
  580.    -- Converts a vibration name into it's affliction.
  581.  
  582.    local list = {
  583.       ["disorientation"] = "dizziness",
  584.       ["creeps"] = "shyness",
  585.       ["stridulation"] = "disrupted",
  586.       ["tremors"] = "fallen"
  587.    }
  588.  
  589.    if list[vibe] == nil then
  590.       return
  591.    end
  592.  
  593.    return list[vibe]
  594.  
  595. end
  596.  
  597. function toneToAffliction( vibe )
  598.  
  599.    -- Converts a tone strike into it's affliction.
  600.    
  601.    local list = {
  602.       ["tremors"] = "fallen",
  603.       ["oscillate"] = "muddled",
  604.       ["disorientation"] = "epilepsy",
  605.       ["stridulation"] = "deafness",
  606.       ["dissonance"] = "dissonance"
  607.    }
  608.    
  609.    if list[vibe] == nil then
  610.       return
  611.    end
  612.    
  613.    return list[vibe]
  614.  
  615. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement