Skip to content

Commit

Permalink
Add Flintbrawl by Zapper
Browse files Browse the repository at this point in the history
  • Loading branch information
lluchs committed Feb 3, 2019
1 parent ee35d25 commit 918c413
Show file tree
Hide file tree
Showing 29 changed files with 719 additions and 1 deletion.
10 changes: 10 additions & 0 deletions planet/Arena.ocf/FlintBrawl.ocs/DescDE.txt
@@ -0,0 +1,10 @@
Flintgemenge

Ein Kampf ohne klassische Waffen: In diesem Szenario bewirft man sich stattdessen mit einer großen Auswahl an Flints.

Ziel: Last Man Standing mit mehreren Runden (Bleibe als Letzter am Leben und gewinne die meisten Runden)

- Der Windbeutel eignet sich nicht nur für große Sprünge, sondern erlaubt es auch, geworfenen Flints einen extra Schub zu geben.
- Die Kanone ist bereits mit Schießpulver geladen und schussbereit.
- Vorsicht, es regnet Chippiemeteoriten und der Boden ist offen.
- Je länger eine Runde dauert, umso stärkere Flints erscheinen im Untergrund.
10 changes: 10 additions & 0 deletions planet/Arena.ocf/FlintBrawl.ocs/DescUS.txt
@@ -0,0 +1,10 @@
Flint Brawl

Fight without the usual weapons: In this scenario, everyone throws flints instead.

Goal: Last Man Standing with multiple rounds (Be the one to stay alive longest and win most rounds)

- The wind bag isn't only for getting to the high ground, but can also give an extra push to flying flints.
- The cannon is loaded with gunpowder and ready to shoot.
- Be careful, it's raining chippies and you can fall out of the bottom.
- The longer the round, the stronger the flints that spawn underground.
15 changes: 15 additions & 0 deletions planet/Arena.ocf/FlintBrawl.ocs/Flints.ocd/Bouncy.ocd/DefCore.txt
@@ -0,0 +1,15 @@
[DefCore]
id=Bouncy
Version=6,0
Category=C4D_Object
Width=8
Height=8
Offset=-4,-4
Vertices=1
VertexX=0
VertexY=0
VertexFriction=20
Value=5
Mass=10
Projectile=1
Fragile=1
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
73 changes: 73 additions & 0 deletions planet/Arena.ocf/FlintBrawl.ocs/Flints.ocd/Bouncy.ocd/Script.c
@@ -0,0 +1,73 @@
/*--- Flint ---*/

local counter = 0;

public func IsGrenadeLauncherAmmo() { return true; }

protected func Construction()
{
return true;
}

func HitEffect()
{
var smoke =
{
Alpha = PV_Linear(255, 0),
Size = 15,
DampingX = 900, DampingY = 900,
R = 100, G = 100, B = 100,
Phase = PV_Random(0, 15)
};
CreateParticle("Smoke", 0, 0, PV_Random(-5,5), PV_Random(-5,5), 20, smoke, 25);
}

func Hit(int xdir, int ydir)
{
if (counter < 2 + Random(10))
{
Bounce(xdir, ydir);
Sound("Hits::Materials::Glass::GlassHit[34]", {pitch = 100 + 10 * counter});
counter++;
HitEffect();
return;
}

// Cast lots of shrapnel.
var shrapnel_count = 40;
var offset = GetSurfaceVector(0, 0);
for (var cnt = 0; cnt < shrapnel_count; cnt++)
{
var shrapnel = CreateObject(Shrapnel, offset[0], offset[1]);
shrapnel->SetVelocity(Random(359), RandomX(100, 140));
shrapnel->SetRDir(-30 + Random(61));
shrapnel->Launch(GetController());
CreateObjectAbove(BulletTrail)->Set(shrapnel, 2, 30);
}
Sound("Hits::Materials::Glass::GlassShatter", {volume = 20});
Fireworks(RGB(150, 115, 200));
RemoveObject();
}

func Bounce(int xdir, int ydir)
{
var angle = Angle(0, 0, xdir, ydir);

var surface = GetSurfaceVector(0, 0);
var surface_angle = Angle(0, 0, surface[0], surface[1]);
var angle_diff = GetTurnDirection(angle - 180, surface_angle);
var new_angle = surface_angle + angle_diff + RandomX(-10, 10);

var speed = Distance(0, 0, xdir, ydir);
speed = 4 * speed / 4;
SetXDir(Sin(new_angle, speed), 100);
SetYDir(-Cos(new_angle, speed), 100);
}


public func HasExplosionOnImpact() { return true; }

local Collectible = 1;
local Name = "$Name$";
local Description = "$Description$";
local Plane = 530; // cause it's explosive, players should see it in a pile of stuff
@@ -0,0 +1,2 @@
Name=Flummy
Description=Springt rum.
@@ -0,0 +1,2 @@
Name=Bouncy
Description=Bounces around.
@@ -0,0 +1,15 @@
[DefCore]
id=ChippyFlint
Version=6,0
Category=C4D_Object
Width=8
Height=8
Offset=-4,-4
Vertices=4
VertexX=-5,5, 0, 0
VertexY=0,0, -5, 5,
VertexFriction=20
Value=5
Mass=10
Projectile=1
Fragile=1
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@@ -0,0 +1,49 @@
/*--- Flint ---*/

public func IsGrenadeLauncherAmmo() { return true; }

protected func Construction()
{
return true;
}

func Hit()
{
ScheduleCall(this, this.Fuse, 1, 1);
return true;
}

func Fuse()
{
Sound("Fire::Spark*");
CreateParticle("Fire", 0, 0, PV_Random(-5, 5), PV_Random(-15, 5), PV_Random(10, 40), Particles_Glimmer(), 5);
return true;
}

func Hit2()
{
for (var i = 0; i < 10; ++i)
{
var egg = CreateObject(Chippie_Egg, 0, 0, GetController());
egg.age = -5000;
egg->SetVelocity(Random(360), RandomX(20, 40));
}

var particles =
{
Prototype = Particles_Material(RGB(100, 255, 50)),
DampingX = 800, DampingY = 800,
ForceY = -GetGravity() / 10,
};
CreateParticle("SmokeDirty", PV_Random(-5, 5), PV_Random(-5, 5),
PV_Random(-10, 10), PV_Random(-10, 10),
PV_Random(10, 20), particles, 60);
RemoveObject();
}

public func HasExplosionOnImpact() { return true; }

local Collectible = 1;
local Name = "$Name$";
local Description = "$Description$";
local Plane = 530; // cause it's explosive, players should see it in a pile of stuff
@@ -0,0 +1,2 @@
Name=Chippyflint
Description=Spawnt Chippies.
@@ -0,0 +1,2 @@
Name=Chippy Flint
Description=Spawns chippies.
@@ -0,0 +1,15 @@
[DefCore]
id=QuickSandBomb
Version=6,0
Category=C4D_Object
Width=8
Height=8
Offset=-4,-4
Vertices=1
VertexX=0
VertexY=0
VertexFriction=20
Value=5
Mass=10
Projectile=1
Fragile=1
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@@ -0,0 +1,47 @@
/*--- Flint ---*/

local fused_fx;

public func IsGrenadeLauncherAmmo() { return true; }

protected func Construction()
{
return true;
}

func HitEffect()
{
var smoke =
{
Alpha = PV_Linear(255, 0),
Size = 15,
DampingX = 900, DampingY = 900,
R = 100, G = 100, B = 100,
Phase = PV_Random(0, 15)
};
CreateParticle("Smoke", 0, 0, PV_Random(-5,5), PV_Random(-5,5), 20, smoke, 25);
}

local FusedEffect = new Effect
{
Timer = func()
{
this.Target->Explode(30);
}
};

func Hit(int xdir, int ydir)
{
if (!fused_fx)
fused_fx = CreateEffect(FusedEffect, 1, 30);
ShakeFree(GetX(), GetY(), 10);
SetSpeed(xdir, ydir, 100);
Sound("Environment::Disasters::EarthquakeEnd");
}

public func HasExplosionOnImpact() { return true; }

local Collectible = 1;
local Name = "$Name$";
local Description = "$Description$";
local Plane = 530; // cause it's explosive, players should see it in a pile of stuff
@@ -0,0 +1,2 @@
Name=Treibsandflint
Description=Fällt durch Erde.
@@ -0,0 +1,2 @@
Name=Quicksand Bomb
Description=Falls through earth.

0 comments on commit 918c413

Please sign in to comment.