Minotaur and Omnitaur

Discuss and provide feedback on Maps.
Post Reply
User avatar
pooty
Posts: 4358
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Minotaur and Omnitaur

Post by pooty »

So...as part of the ongoing clean up that is the vehicle coding mess Omni.
While working on firetank(s), I've noticed on the decompiled Minotaur.u (Classic Mino) and Omnitaur.u (Usual Omni Mino) neither of those vehicles have the TakeDamage modifiers...

I am going to guess that the map editors decided to updated the code based on the map, which IMO makes for inconsistent play.... sometimes a Cicada does half damage/sometimes not. I for one would like the vehicles to be consistent... this probably creates 'haxx' when on one map someone takes full damage and another they do not!

Looking at three maps (RedPlanet, DJY, and Minus-Badger -- all untouched recently) and ALL THREE HAD DIFFERENT TAKE DAMAGE CODE.
So far the one constant was

Code: Select all

  if (DamageType == class'DamTypeBioGlob')
                Damage *= 5.0;
Which is fine, but what about other damage types? What should we set those to? I'd like to clean up the Minotaur and Omnitaur .u files to make them consistent. I added VehicleLoadOut Omnitaur at the bottom.

RedPlanet

Code: Select all

if (DamageType == class'DamTypeHoverBikePlasma')
		Damage *= 0.80;

	if (DamageType == class'DamTypeONSCicadaRocket')
		Damage *= 0.80;

	if (DamageType == class'DamTypeAttackCraftPlasma')
		Damage *= 0.80;

	if (DamageType == class'DamTypeFlakChunk')
		Damage *= 0.80;

	if (DamageType == class'DamTypeShockBeam')
		Damage *= 0.70;
            Momentum *=0.1;
DJY

Code: Select all

 // End:0x1B
    if(DamageType == class'DamTypeBioGlob')
    {
        Damage *= 5.0;
    }
    // End:0x36
    if(DamageType == class'DamTypeHoverBikePlasma')
    {
        Damage *= 0.70;
    }
    // End:0x51
    if(DamageType == class'DamTypeONSCicadaRocket')
    {
        Damage *= 0.70;
    }
    // End:0x6C
    if(DamageType == class'DamTypeAttackCraftPlasma')
    {
        Damage *= 0.70;
    }
    // End:0x88
    if(ClassIsChildOf(DamageType, class'DamTypeAirPower'))
    {
        Damage *= 0.70;
    }
    // End:0xA3
    if(DamageType == class'FireKill')
    {
        Damage *= 0.30;
    }
    // End:0xBE
    if(DamageType == class'AlligatorFlak')
    {
        Damage *= 0.750;
    }
    // End:0xD9
    if(DamageType == class'DamTypeShockBeam')
    {
        Damage *= 0.750;
    }
    // End:0xF4
    if(DamageType == class'TurtleDamTypeProximityExplosion')
    {
        Damage *= 1.550;
    }
    // End:0x10F
    if(DamageType == class'MinotaurTurretkill')
    {
        Damage *= 0.30;
    }
    // End:0x12A
    if(DamageType == class'MinotaurSecondaryTurretKill')
    {
        Damage *= 0.30;
    }
    // End:0x145
    if(DamageType == class'HeatRay')
    {
        Damage *= 0.30;
    }
    Momentum *= 0.0;
    super.TakeDamage(Damage, instigatedBy, HitLocation, Momentum, DamageType);
    ReduceShake();
    //return;    
Minus-Badger

Code: Select all

function TakeDamage(int Damage, Pawn instigatedBy, Vector HitLocation, Vector Momentum, class<DamageType> DamageType)
{
    // End:0x1B
    if(DamageType == class'DamTypeBioGlob')
    {
        Damage *= 5.0;
    }
    // End:0x36
    if(DamageType == class'DamTypeHoverBikePlasma')
    {
        Damage *= 0.70;
    }
    // End:0x51
    if(DamageType == class'DamTypeONSCicadaRocket')
    {
        Damage *= 0.50;
    }
    // End:0x6C
    if(DamageType == class'DamTypeAttackCraftPlasma')
    {
        Damage *= 0.50;
    }
    // End:0x87
    if(DamageType == class'DamTypeFlakChunk')
    {
        Damage *= 0.70;
    }
    // End:0xA2
    if(DamageType == class'DamTypeShockBeam')
    {
        Damage *= 0.650;
    }
    Momentum *= float(0);
    super.TakeDamage(Damage, instigatedBy, HitLocation, Momentum, DamageType);
    //return;    
}
Lastly the Vehicle Loadout Map (Maybe this is the basis going forward)

Code: Select all

function TakeDamage(int Damage, Pawn instigatedBy, Vector Hitlocation, Vector Momentum, class<DamageType> DamageType)
{

        if (DamageType == class'DamTypeBioGlob')
                Damage *= 5.0;

	if (DamageType == class'DamTypeHoverBikePlasma')
		Damage *= 0.70;

	if (DamageType == class'DamTypeONSCicadaRocket')
		Damage *= 0.50;

	if (DamageType == class'DamTypeAttackCraftPlasma')
		Damage *= 0.50;

	if (DamageType == class'DamTypeFlakChunk')
		Damage *= 0.70;

	if (DamageType == class'DamTypeShockBeam')
		Damage *= 0.65;

       Momentum *=0;

        Super.TakeDamage(Damage, instigatedBy, Hitlocation, Momentum,damageType);
}
User avatar
captainsnarf
Posts: 2632
Joined: Tue Jul 06, 2021 1:51 pm
Location: Washington
Server Sponsor: Yes
Server Admin: Yes
Contact:

Re: Minotaur and Omnitaur

Post by captainsnarf »

If you are running Snarf's Vehicle Pack, then Omnitaur is getting replaced with CSMinotaur. Here is CSMinotaur's TakeDamage function:

Code: Select all

function TakeDamage(int Damage, Pawn instigatedBy, Vector Hitlocation, Vector Momentum, class<DamageType> DamageType)
{

    if (DamageType == class'DamTypeBioGlob')
            Damage *= 5.0;

	if (DamageType == class'DamTypeHoverBikePlasma')
		Damage *= 0.70;

	if (DamageType == class'DamTypeONSCicadaRocket')
		Damage *= 0.70;

	if (DamageType == class'DamTypeAttackCraftPlasma')
		Damage *= 0.70;

	//if (ClassIsChildOf(DamageType,class'DamTypeAirPower'))
	if (DamageType.name == 'AuroraLaser' || DamageType.name == 'WaspFlak')
		Damage *= 0.70;

	//if (DamageType == class'FireKill')
	if (DamageType.name == 'FireKill')
		Damage *= 0.30;

	//if (DamageType == class'AlligatorFlak')
	if (DamageType.name == 'AlligatorFlak')
		Damage *= 0.75;

	if (DamageType == class'DamTypeShockBeam')
		Damage *= 0.75;

    //if (DamageType == class'TurtleDamTypeProximityExplosion')
    if (DamageType.name == 'TurtleDamTypeProximityExplosion')
            Damage *= 1.55;

	if (DamageType == class'MinotaurTurretkill')
		Damage *= 0.30;

	if (DamageType == class'MinotaurSecondaryTurretKill')
		Damage *= 0.30;

	//if (DamageType == class'HeatRay')
	if (DamageType.name == 'HeatRay')
		Damage *= 0.30;

	Momentum *= 0.00;

    Super.TakeDamage(Damage, instigatedBy, Hitlocation, Momentum, damageType);
	ReduceShake();
}
Since I can't do

Code: Select all

 IsChildClassOf(class'DamTypeAirPower')
 
I just looked through all source for all mods I had to see which damage types are child class of DamTypeAirPower. I only found two. So I do this instead:

Code: Select all

	if (DamageType.name == 'AuroraLaser' || DamageType.name == 'WaspFlak')
User avatar
pooty
Posts: 4358
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: Minotaur and Omnitaur

Post by pooty »

I'll just use CSMinotaur.u as the Omnitaur. I wonder if we should rename the CSMinotaur.u to CSOmnitaur?

Or better yet, I'll just recompile Minotaur.u to ClassicMinotaur.u and call it good.
Maybe take that Damage function and move it to the ClassicMinotaur, although may reduce biogoop to x3 instead of x5.
Post Reply