Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Poll

Fanfiction stuff?

Very yes
Yes
Indifferent
No
Very no

Pages: 1 ... 30 31 [32] 33 34 ... 88

Author Topic: Sparking!!! Dragon Ball Mod (0.47, rolling releases): Half a Raditz  (Read 322788 times)

Torknick

  • Bay Watcher
    • View Profile
Re: Sparking!!! Dragon Ball (Z) Mod: Come out, Dragon! (0.34.11)
« Reply #465 on: March 20, 2013, 08:11:28 am »

well, maybe it will be possible when toady adds trees.
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Sparking!!! Dragon Ball (Z) Mod: Come out, Dragon! (0.34.11)
« Reply #466 on: March 30, 2013, 10:52:13 am »

Feeling like including Birus now. You probably won't want to fight him ever. Also, maybe something else...

Spirit of Power

  • Bay Watcher
    • View Profile
Re: Sparking!!! Dragon Ball (Z) Mod: Come out, Dragon! (0.34.11)
« Reply #467 on: March 30, 2013, 01:51:14 pm »

Feeling like including Birus now. You probably won't want to fight him ever. Also, maybe something else...

Well assuming you make him the equal of a Super Saiyan God who can also turn people into sand, I'd say he's got Broly beat >_>

Also, just throwing an idea out here, would it be possible to use autoSyndrome to make a pseudo-gravity room? Like, you've got a reaction which uses, say, the striker skill, and also applies a syndrome which makes the Saiyan in question gain attributes faster for a short while, so the end result (should be) that you gain skill and attributes much faster when you spam this reaction. Unless doing a reaction doesn't increase an attribute, in which case this probably won't work.
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Sparking!!! Dragon Ball (Z) Mod: Come out, Dragon! (0.34.11)
« Reply #468 on: March 30, 2013, 02:20:06 pm »

Been playing around with Birus.

He's way, way, WAY stronger than Broly. The only defenses against him are:

1. Holing up.

2. Super Saiyan God.

Also going in next version: advfort.

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile

1.13!

-Added Birus.

-Overhauled Super Saiyan for better function of...

-Potara Earrings.

KingofstarrySkies

  • Bay Watcher
  • It's been a long time...
    • View Profile

WOAH.
Potara?
How does it work?
Logged
Sigtextastic
Vereor Nox.
There'll be another King, another sky, and a billion more stars...

Korbac

  • Bay Watcher
  • I'm very annoying, so tell me to STFU if need be
    • View Profile

1.13!

-Added Birus.

-Overhauled Super Saiyan for better function of...

-Potara Earrings.

"WELL MAYBE YOU MESSED IT UP INSTEAD MISTER STRAIGHT - FINGERS!"
Logged

laularukyrumo

  • Bay Watcher
  • Needs More Socks
    • View Profile

Oh god Potara Earrings

I'm scared. Very, very scared.

So are the earrings in yet, or have you merely laid the foundation for them?
Logged
Quote from: Dwarfotaur
Everytime one of my militia has given birth in the Danger Room, it's lead to instant baby smoothies for everyone.

Gotta Catch 'Em All!

Dat Sig Thread

Spirit of Power

  • Bay Watcher
    • View Profile

I'm getting several DFHack errors in the new version. Whenever the God of Destruction does his huge ki blast (or when I use a kienzan), this happens:



Also, when I use the scouter, this happens:



Though it was originally a glitch about an unexpected character ")" on line 62, I was able to fix that by removing an extra ) on lines 62 and 63, so you'll want to correct that. Haven't yet tested Super Saiyan to see if it works.
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile

...Whoops. Uploaded it with an old version of projectileExpansion.

Sorry, here's the correct one:

beep

The scouter I fixed, too, for next release:

Code: [Select]
-- Gives power level of selected unit. Type "accurate" for a more linear, but more boring number.

local selectedUnit = dfhack.gui.getSelectedUnit(silent)

local args = {...}

local accurate = false

for _,arg in ipairs(args) do
    if arg == "accurate" then accurate = true end
end

local function unitIsGod(unit)
    local unitraws = df.creature_raw.find(unit.race)
    local casteraws = unitraws.caste[unit.caste]
    local unitclasses = casteraws.creature_class
    for _,class in ipairs(unitclasses) do
        if class.value == "GOD" then return true end
    end
    for _,u_syndrome in ipairs(unit.syndromes.active) do
        local syndrome = df.global.world.raws.syndromes.all[u_syndrome.type]
        for _,synclass in ipairs(syndrome.syn_class) do
            if synclass.value == "GOD" then return true end
        end
    end
    return false
end

--power levels should account for disabilities and such
local function isWinded(unit)
    if unit.counters.winded > 0 then return true end
    return false
end
local function isStunned(unit)
    if unit.counters.stunned > 0 then return true end
    return false
end
local function isUnconscious(unit)
    if unit.counters.unconscious > 0 then return true end
    return false
end
local function isParalyzed(unit)
    if unit.counters2.paralysis > 0 then return true end
    return false
end
local function getExhaustion(unit)
    local exhaustion = 1
    if unit.counters2.exhaustion~=0 then
        exhaustion = 1000/unit.counters2.exhaustion
        return exhaustion
    end
    return 1
end

if not selectedUnit then
    qerror('Need to select a unit.')
end

--blood_max appears to be the creature's body size divided by 10; the power level calculation relies on body size divided by 1000, so divided by 100 it is. blood_count refers to current blood amount, and it, when full, is equal to blood_max.
local speed = 1000/dfhack.units.computeMovementSpeed(selectedUnit)
local strength = ((selectedUnit.body.physical_attrs.STRENGTH.value+selectedUnit.curse.attr_change.phys_att_add.STRENGTH)/3550)*(selectedUnit.curse.attr_change.phys_att_perc.STRENGTH/100)
local endurance = ((selectedUnit.body.physical_attrs.ENDURANCE.value+selectedUnit.curse.attr_change.phys_att_add.ENDURANCE)/1000)*(selectedUnit.curse.attr_change.phys_att_perc.ENDURANCE/100)
local toughness = ((selectedUnit.body.physical_attrs.TOUGHNESS.value+selectedUnit.curse.attr_change.phys_att_add.TOUGHNESS)/2250)*(selectedUnit.curse.attr_change.phys_att_perc.TOUGHNESS/100)
local spatialsense = ((selectedUnit.status.current_soul.mental_attrs.SPATIAL_SENSE.value+selectedUnit.curse.attr_change.ment_att_add.SPATIAL_SENSE)/1500)*(selectedUnit.curse.attr_change.ment_att_perc.SPATIAL_SENSE/100)
local kinestheticsense = ((selectedUnit.status.current_soul.mental_attrs.KINESTHETIC_SENSE.value+selectedUnit.curse.attr_change.ment_att_add.KINESTHETIC_SENSE)/1000)*(selectedUnit.curse.attr_change.ment_att_perc.KINESTHETIC_SENSE/100)
local willpower = ((selectedUnit.status.current_soul.mental_attrs.WILLPOWER.value+selectedUnit.curse.attr_change.ment_att_add.WILLPOWER)/1000)*(selectedUnit.curse.attr_change.ment_att_perc.WILLPOWER/100)
local exhaustion = getExhaustion(selectedUnit)


if accurate == true
then
    local bodysize = selectedUnit.body.blood_count*10
    powerlevel = bodysize*speed*((strength*endurance*toughness*spatialsense*kinestheticsense*willpower)^(1/6))*exhaustion
    powerlevel = powerlevel * 300
else
    local bodysize = (selectedUnit.body.blood_count/100)^2
    powerlevel = bodysize*speed*((strength*endurance*toughness*spatialsense*kinestheticsense*willpower)^(1/6))*exhaustion
end
if isWinded(selectedUnit) then powerlevel=powerlevel/1.2 end
if isStunned(selectedUnit) then powerlevel=powerlevel/1.5 end
if isParalyzed(selectedUnit) then powerlevel=powerlevel/5 end
if isUnconscious(selectedUnit) then powerlevel=powerlevel/10 end

if powerlevel == 1/0 or unitIsGod(selectedUnit) then
    dfhack.gui.showPopupAnnouncement("The scouter broke at this incredible power. Either the power belongs to a god... or it's immeasurable.")
    qerror("Scouter broke! Oh well, there are more.")
end

dfhack.gui.showAnnouncement("The scouter says " .. math.floor(powerlevel) .. "!",11)
« Last Edit: March 31, 2013, 12:19:44 pm by Putnam »
Logged

Spirit of Power

  • Bay Watcher
    • View Profile

Well projectileExpansion works alright now. But I'm still getting scouter glitches. Namely, after I first spawn a creature, I get this:



But that goes away after the creature fights a bit. But then I get this:



And yes, I did replace scouter.lua with the updated script you posted.
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile

Dammit. Wait a second.

EDIT: Dammit. attr_change is nil if the creature doesn't have a syndrome that changes attributes.

Code: [Select]
-- Gives power level of selected unit. Type "accurate" for a more linear, but more boring number.

local selectedUnit = dfhack.gui.getSelectedUnit(silent)

local args = {...}

local accurate = false

for _,arg in ipairs(args) do
    if arg == "accurate" then accurate = true end
end

local function unitIsGod(unit)
    local unitraws = df.creature_raw.find(unit.race)
    local casteraws = unitraws.caste[unit.caste]
    local unitclasses = casteraws.creature_class
    for _,class in ipairs(unitclasses) do
        if class.value == "GOD" then return true end
    end
    for _,u_syndrome in ipairs(unit.syndromes.active) do
        local syndrome = df.global.world.raws.syndromes.all[u_syndrome.type]
        for _,synclass in ipairs(syndrome.syn_class) do
            if synclass.value == "GOD" then return true end
        end
    end
    return false
end

--power levels should account for disabilities and such
local function isWinded(unit)
    if unit.counters.winded > 0 then return true end
    return false
end
local function isStunned(unit)
    if unit.counters.stunned > 0 then return true end
    return false
end
local function isUnconscious(unit)
    if unit.counters.unconscious > 0 then return true end
    return false
end
local function isParalyzed(unit)
    if unit.counters2.paralysis > 0 then return true end
    return false
end
local function getExhaustion(unit)
    local exhaustion = 1
    if unit.counters2.exhaustion~=0 then
        exhaustion = 1000/unit.counters2.exhaustion
        return exhaustion
    end
    return 1
end

if not selectedUnit then
    qerror('Need to select a unit.')
end

--blood_max appears to be the creature's body size divided by 10; the power level calculation relies on body size divided by 1000, so divided by 100 it is. blood_count refers to current blood amount, and it, when full, is equal to blood_max.
local speed = 1000/dfhack.units.computeMovementSpeed(selectedUnit)
if selectedUnit.curse.attr_change then
local strength = ((selectedUnit.body.physical_attrs.STRENGTH.value+selectedUnit.curse.attr_change.phys_att_add.STRENGTH)/3550)*(selectedUnit.curse.attr_change.phys_att_perc.STRENGTH/100)
local endurance = ((selectedUnit.body.physical_attrs.ENDURANCE.value+selectedUnit.curse.attr_change.phys_att_add.ENDURANCE)/1000)*(selectedUnit.curse.attr_change.phys_att_perc.ENDURANCE/100)
local toughness = ((selectedUnit.body.physical_attrs.TOUGHNESS.value+selectedUnit.curse.attr_change.phys_att_add.TOUGHNESS)/2250)*(selectedUnit.curse.attr_change.phys_att_perc.TOUGHNESS/100)
local spatialsense = ((selectedUnit.status.current_soul.mental_attrs.SPATIAL_SENSE.value+selectedUnit.curse.attr_change.ment_att_add.SPATIAL_SENSE)/1500)*(selectedUnit.curse.attr_change.ment_att_perc.SPATIAL_SENSE/100)
local kinestheticsense = ((selectedUnit.status.current_soul.mental_attrs.KINESTHETIC_SENSE.value+selectedUnit.curse.attr_change.ment_att_add.KINESTHETIC_SENSE)/1000)*(selectedUnit.curse.attr_change.ment_att_perc.KINESTHETIC_SENSE/100)
local willpower = ((selectedUnit.status.current_soul.mental_attrs.WILLPOWER.value+selectedUnit.curse.attr_change.ment_att_add.WILLPOWER)/1000)*(selectedUnit.curse.attr_change.ment_att_perc.WILLPOWER/100)
else
local strength = selectedUnit.body.physical_attrs.STRENGTH.value/3550
local endurance = selectedUnit.body.physical_attrs.ENDURANCE.value/1000
local toughness = selectedUnit.body.physical_attrs.TOUGHNESS.value/2250
local spatialsense = selectedUnit.status.current_soul.mental_attrs.SPATIAL_SENSE.value/1500
local kinestheticsense = selectedUnit.status.current_soul.mental_attrs.KINESTHETIC_SENSE.value/1000
local willpower = selectedUnit.status.current_soul.mental_attrs.WILLPOWER.value/1000
end
local exhaustion = getExhaustion(selectedUnit)


if accurate == true
then
    local bodysize = selectedUnit.body.blood_count*10
    powerlevel = bodysize*speed*((strength*endurance*toughness*spatialsense*kinestheticsense*willpower)^(1/6))*exhaustion
    powerlevel = powerlevel * 300
else
    local bodysize = (selectedUnit.body.blood_count/100)^2
    powerlevel = bodysize*speed*((strength*endurance*toughness*spatialsense*kinestheticsense*willpower)^(1/6))*exhaustion
end
if isWinded(selectedUnit) then powerlevel=powerlevel/1.2 end
if isStunned(selectedUnit) then powerlevel=powerlevel/1.5 end
if isParalyzed(selectedUnit) then powerlevel=powerlevel/5 end
if isUnconscious(selectedUnit) then powerlevel=powerlevel/10 end

if powerlevel == 1/0 or unitIsGod(selectedUnit) then
    dfhack.gui.showPopupAnnouncement("The scouter broke at this incredible power. Either the power belongs to a god... or it's immeasurable.")
    qerror("Scouter broke! Oh well, there are more.",11)
end

dfhack.gui.showAnnouncement("The scouter says " .. math.floor(powerlevel) .. "!",11)

THERE
« Last Edit: March 31, 2013, 01:10:30 pm by Putnam »
Logged

Spirit of Power

  • Bay Watcher
    • View Profile

And once more, you fixed that one but I found another.

Logged

Torknick

  • Bay Watcher
    • View Profile

How do the potara earrings work? Also you said that you changed a few things about super saiyans, what did you change? I cant seem to spawn super saiyans in the arena.
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile

Well, take two people; let's call them... Tarlic and Kakarot (a couple of the more common names).

Tarlic and Kakarot both put on a potara earring.

After a little while, Kakarot "vanishes", and, where Tarlic was standing is Tarrot, who has all the experience of the both of them, which much more strength (the weakest possible fusion will still be 200 times as strong as the strongest possible saiyan). Tarrot also appears as an intermediate between the two, with intermediate nose size, intermediate personality traits and all that.

And once more, you fixed that one but I found another.


Here you go:

Code: [Select]
-- Gives power level of selected unit. Type "accurate" for a more linear, but more boring number.

local selectedUnit = dfhack.gui.getSelectedUnit(silent)

local args = {...}

local accurate = false

for _,arg in ipairs(args) do
    if arg == "accurate" then accurate = true end
end

local function unitIsGod(unit)
    local unitraws = df.creature_raw.find(unit.race)
    local casteraws = unitraws.caste[unit.caste]
    local unitclasses = casteraws.creature_class
    for _,class in ipairs(unitclasses) do
        if class.value == "GOD" then return true end
    end
    for _,u_syndrome in ipairs(unit.syndromes.active) do
        local syndrome = df.global.world.raws.syndromes.all[u_syndrome.type]
        for _,synclass in ipairs(syndrome.syn_class) do
            if synclass.value == "GOD" then return true end
        end
    end
    return false
end

--power levels should account for disabilities and such
local function isWinded(unit)
    if unit.counters.winded > 0 then return true end
    return false
end
local function isStunned(unit)
    if unit.counters.stunned > 0 then return true end
    return false
end
local function isUnconscious(unit)
    if unit.counters.unconscious > 0 then return true end
    return false
end
local function isParalyzed(unit)
    if unit.counters2.paralysis > 0 then return true end
    return false
end
local function getExhaustion(unit)
    local exhaustion = 1
    if unit.counters2.exhaustion~=0 then
        exhaustion = 1000/unit.counters2.exhaustion
        return exhaustion
    end
    return 1
end

if not selectedUnit then
    qerror('Need to select a unit.')
end

--blood_max appears to be the creature's body size divided by 10; the power level calculation relies on body size divided by 1000, so divided by 100 it is. blood_count refers to current blood amount, and it, when full, is equal to blood_max.
local speed = 1000/dfhack.units.computeMovementSpeed(selectedUnit)
if selectedUnit.curse.attr_change then
strength = ((selectedUnit.body.physical_attrs.STRENGTH.value+selectedUnit.curse.attr_change.phys_att_add.STRENGTH)/3550)*(selectedUnit.curse.attr_change.phys_att_perc.STRENGTH/100)
endurance = ((selectedUnit.body.physical_attrs.ENDURANCE.value+selectedUnit.curse.attr_change.phys_att_add.ENDURANCE)/1000)*(selectedUnit.curse.attr_change.phys_att_perc.ENDURANCE/100)
toughness = ((selectedUnit.body.physical_attrs.TOUGHNESS.value+selectedUnit.curse.attr_change.phys_att_add.TOUGHNESS)/2250)*(selectedUnit.curse.attr_change.phys_att_perc.TOUGHNESS/100)
spatialsense = ((selectedUnit.status.current_soul.mental_attrs.SPATIAL_SENSE.value+selectedUnit.curse.attr_change.ment_att_add.SPATIAL_SENSE)/1500)*(selectedUnit.curse.attr_change.ment_att_perc.SPATIAL_SENSE/100)
kinestheticsense = ((selectedUnit.status.current_soul.mental_attrs.KINESTHETIC_SENSE.value+selectedUnit.curse.attr_change.ment_att_add.KINESTHETIC_SENSE)/1000)*(selectedUnit.curse.attr_change.ment_att_perc.KINESTHETIC_SENSE/100)
willpower = ((selectedUnit.status.current_soul.mental_attrs.WILLPOWER.value+selectedUnit.curse.attr_change.ment_att_add.WILLPOWER)/1000)*(selectedUnit.curse.attr_change.ment_att_perc.WILLPOWER/100)
else
strength = selectedUnit.body.physical_attrs.STRENGTH.value/3550
endurance = selectedUnit.body.physical_attrs.ENDURANCE.value/1000
toughness = selectedUnit.body.physical_attrs.TOUGHNESS.value/2250
spatialsense = selectedUnit.status.current_soul.mental_attrs.SPATIAL_SENSE.value/1500
kinestheticsense = selectedUnit.status.current_soul.mental_attrs.KINESTHETIC_SENSE.value/1000
willpower = selectedUnit.status.current_soul.mental_attrs.WILLPOWER.value/1000
end
local exhaustion = getExhaustion(selectedUnit)


if accurate == true
then
    local bodysize = selectedUnit.body.blood_count*10
    powerlevel = bodysize*speed*((strength*endurance*toughness*spatialsense*kinestheticsense*willpower)^(1/6))*exhaustion
    powerlevel = powerlevel * 300
else
    local bodysize = (selectedUnit.body.blood_count/100)^2
    powerlevel = bodysize*speed*((strength*endurance*toughness*spatialsense*kinestheticsense*willpower)^(1/6))*exhaustion
end
if isWinded(selectedUnit) then powerlevel=powerlevel/1.2 end
if isStunned(selectedUnit) then powerlevel=powerlevel/1.5 end
if isParalyzed(selectedUnit) then powerlevel=powerlevel/5 end
if isUnconscious(selectedUnit) then powerlevel=powerlevel/10 end

if powerlevel == 1/0 or unitIsGod(selectedUnit) then
    dfhack.gui.showPopupAnnouncement("The scouter broke at this incredible power. Either the power belongs to a god... or it's immeasurable.")
    qerror("Scouter broke! Oh well, there are more.",11)
end

dfhack.gui.showAnnouncement("The scouter says " .. math.floor(powerlevel) .. "!",11)

Super Saiyans can't be found in the arena because I changed them from being a creature to being a syndrome. I'd better fix it so you can still make them in the arena (though you will have super saiyan humans as a possibility)
Pages: 1 ... 30 31 [32] 33 34 ... 88