[Orxonox-commit 7579] r12184 - in code/branches/Merge_HS18: . data/levels data/levels/templates data/overlays src/libraries/tools src/modules src/modules/weapons/projectiles src/modules/weapons/weaponmodes
merholzl at orxonox.net
merholzl at orxonox.net
Tue Dec 11 18:53:27 CET 2018
Author: merholzl
Date: 2018-12-11 18:53:27 +0100 (Tue, 11 Dec 2018)
New Revision: 12184
Added:
code/branches/Merge_HS18/data/levels/Wagnis.oxw
code/branches/Merge_HS18/data/levels/templates/wagnisCursor.oxt
code/branches/Merge_HS18/data/overlays/WagnisHUD.oxo
code/branches/Merge_HS18/src/modules/wagnis/
code/branches/Merge_HS18/src/modules/weapons/projectiles/WagnisProjectile.cc
code/branches/Merge_HS18/src/modules/weapons/projectiles/WagnisProjectile.h
code/branches/Merge_HS18/src/modules/weapons/weaponmodes/WagnisGun.cc
code/branches/Merge_HS18/src/modules/weapons/weaponmodes/WagnisGun.h
Modified:
code/branches/Merge_HS18/
code/branches/Merge_HS18/src/libraries/tools/Timer.cc
code/branches/Merge_HS18/src/modules/CMakeLists.txt
code/branches/Merge_HS18/src/modules/weapons/projectiles/CMakeLists.txt
code/branches/Merge_HS18/src/modules/weapons/weaponmodes/CMakeLists.txt
Log:
Wagnis Merge
Index: code/branches/Merge_HS18
===================================================================
--- code/branches/Merge_HS18 2018-12-11 17:33:26 UTC (rev 12183)
+++ code/branches/Merge_HS18 2018-12-11 17:53:27 UTC (rev 12184)
Property changes on: code/branches/Merge_HS18
___________________________________________________________________
Modified: svn:mergeinfo
## -202,6 +202,7 ##
/code/branches/tutoriallevel3:8453-8636
/code/branches/unity_build:8440-8716
/code/branches/usability:7915-8078
+/code/branches/wagnis_HS18:12035-12183
/code/branches/weapon:1925-2094
/code/branches/weapon2:2107-2488
/code/branches/weaponFS15:10302-10615
Copied: code/branches/Merge_HS18/data/levels/Wagnis.oxw (from rev 12183, code/branches/wagnis_HS18/data/levels/Wagnis.oxw)
===================================================================
--- code/branches/Merge_HS18/data/levels/Wagnis.oxw (rev 0)
+++ code/branches/Merge_HS18/data/levels/Wagnis.oxw 2018-12-11 17:53:27 UTC (rev 12184)
@@ -0,0 +1,522 @@
+<LevelInfo
+ name = "Wagnis"
+ description = "A clone of the iconic Risk."
+ tags = ""
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+ include("stats.oxo")
+ include("HUDTemplates3.oxo")
+ include("WagnisHUD.oxo")
+ include("templates/lodInformation.oxt")
+ include("templates/wagnisCursor.oxt")
+ include("includes/notifications.oxi")
+?>
+
+<Level plugins="wagnis" gametype="Wagnis">
+ <templates>
+ <Template link=lodtemplate_default />
+ </templates>
+
+ <Scene
+ ambientlight = "0.8, 0.8, 0.8"
+ skybox = "Orxonox/skyBoxBasic"
+ >
+
+ <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
+ <SpawnPoint position="-100, 45, 75" lookat="0,45,75" spawnclass=SpaceShip pawndesign=wagnisCursor />
+
+<WagnisGameboard position="20,20,20" connections_string="1=2+3, 2=1+3+4, 3=1+2+4+21, 4=2+3+5, 5=4+6+7, 6=5+7+8+12, 7=5+6+9+8, 8=6+7+9+10+11+12, 9=7+8+10, 10=8+9+11+14, 11=8+10+12+13, 12=6+8+11+13, 13=11+12+27, 14=10+15+16, 15=14+16+17+19, 16=14+15+17+18, 17=15+16+18+19+20, 18=16+17+20+33+35+36, 19=15+17+20+21, 20=17+18+19+36+22, 21=3+19+20+22+23+24, 22=21+20+36+23, 23=21+22+24+36+26+25, 24=21+23+25, 25=24+26+23, 26=25+23, 27=13+28+29+30+31, 28=27+29, 29=27+28+30+32+34, 30=27+29+31+32, 31=27+30+32, 32=31+30+29+34+33, 33=18+32+34+35, 34=29+32+33+35+37+38, 35=18+33+34+37+36, 36=18+20+22+23+37+35, 37=34+35+36+38, 38=34+37+39, 39=38+40+41, 40=39+41+42, 41=39+40+42, 42=40+41">
+
+
+ <Provinces>
+ <!-- SA -->
+ <WagnisProvince ID="1" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="2" position="0,28,8" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.293, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="2" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="2" position="0,39,4" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.293, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="3" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="2" position="0,34,17" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.293, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="4" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="2" position="0,46,14" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.293, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+
+
+
+ <!-- NA -->
+ <WagnisProvince ID="5" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="1" position="0,61,8" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.8125, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="6" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="1" position="0,73,9" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.8125, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="7" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="1" position="0,65,20" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.8125, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="8" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="1" position="0,70,29" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.8125, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="9" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="1" position="0,60,32" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.8125, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="10" position="0,66,41" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="1" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.8125, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="11" position="0,76,38" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="1" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.8125, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="12" position="0,80,25" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="1" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.8125, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="13" position="0,82,52" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="1" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.8125, 0.082"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+
+
+
+
+ <!-- EU -->
+ <WagnisProvince ID="14" position="0,58,62" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="4" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.085,0.457,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="15" position="0,50,57" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="4" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.085,0.457,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="16" position="0,53,74" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="4" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.085,0.457,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="17" position="0,40,72" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="4" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.085,0.457,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="18" position="0,45,86" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="4" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.085,0.457,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="19" position="0,39,58" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="4" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.085,0.457,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="20" position="0,32,81" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="4" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.085,0.457,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+
+
+
+
+ <!-- AF -->
+ <WagnisProvince ID="21" position="0,20,45" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="2" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.515,0.199,0.054"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="22" position="0,23,62" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="2" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.515,0.199,0.054"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="23" position="0,16,73" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="2" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.515,0.199,0.054"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="24" position="0,10,50" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="2" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.515,0.199,0.054"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="25" position="0,4,61" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="2" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.515,0.199,0.054"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="26" position="0,5,76" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="2" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.515,0.199,0.054"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+
+
+
+
+
+ <!-- AS -->
+ <WagnisProvince ID="27" position="0,81,76" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="28" position="0,82,103" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="29" position="0,69,112" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="30" position="0,72,95" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="31" position="0,70,79" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="32" position="0,60,93" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="33" position="0,52,105" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="34" position="0,50,121" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="35" position="0,41,105" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="36" position="0,30,101" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="37" position="0,33,116" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="38" position="0,35,127" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="5" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+
+
+
+
+ <!-- AU -->
+ <WagnisProvince ID="39" position="0,22,131" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="6" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.695,0.085,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="40" position="0,13,121" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="6" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.695,0.085,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="41" position="0,13,141" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="6" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.695,0.085,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="42" position="0,5,130" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="6" rotationrate="<?lua print(math.random() * 50) ?>" rotationaxis="<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>,<?lua print((math.random()-1)*5)?>">
+ <attached>
+ <Model position="0,0,0" mesh="ast1.mesh" scale3D="1.4,1.4,1.4" />
+ <Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.695,0.085,0.804"/>
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+ <WagnisProvince ID="1000" radarname="continue" health = 10000000 maxhealth = 10000000 initialhealth = 10000000 collisionType=kinematic mass=100 continent="0" position="0,75,137" pitch=90 rotationrate="0" rotationaxis="0,0,0">
+ <attached>
+ <Model position="0,0,0" mesh="broke-satellite.mesh" scale3D="3,3,3" />
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="3,3,3" />
+ </collisionShapes>
+ </WagnisProvince>
+
+
+ </Provinces>
+</WagnisGameboard>
+
+<Billboard position="0,27,32" amplitude=1 material="Wagnis/Arrow" rotation="0.4" colour="1,1,1"/> <!--3,21-->
+<Billboard position="0,53.5,11" amplitude=1 material="Wagnis/Arrow" rotation="1.1" colour="1,1,1"/> <!--4,5-->
+<Billboard position="0,29.5,52" amplitude=1 material="Wagnis/Arrow" rotation="2.2" colour="1,1,1"/> <!--19,21-->
+<Billboard position="0,28,62" amplitude=1 material="Wagnis/Arrow" rotation="2.8" colour="1,1,1"/> <!--20,21-->
+<Billboard position="0,27.5,71.5" amplitude=1 material="Wagnis/Arrow" rotation="2.7" colour="1,1,1"/> <!--20,22-->
+<Billboard position="0,26.5,81.5" amplitude=1 material="Wagnis/Arrow" rotation="3" colour="1,1,1"/> <!--22,36-->
+<Billboard position="0,23,87" amplitude=1 material="Wagnis/Arrow" rotation="2.7" colour="1,1,1"/> <!--23,36-->
+<Billboard position="0,81.5,64" amplitude=1 material="Wagnis/Arrow" rotation="0" colour="1,1,1"/> <!--13,27-->
+<Billboard position="0,81.5,38.5" amplitude=1 material="Wagnis/Arrow" rotation="-0.1" colour="1,1,1"/> <!--12,13-->
+<Billboard position="0,76,96" amplitude=1 material="Wagnis/Arrow" rotation="0.3" colour="1,1,1"/> <!--27,29-->
+<Billboard position="0,62,51.5" amplitude=1 material="Wagnis/Arrow" rotation="0.2" colour="1,1,1"/> <!--10,14-->
+<Billboard position="0,31,91" amplitude=1 material="Wagnis/Arrow" rotation="0.1" colour="1,1,1"/> <!--20,36-->
+<Billboard position="0,43,95.5" amplitude=1 material="Wagnis/Arrow" rotation="0.1" colour="1,1,1"/> <!--18,35-->
+<Billboard position="0,37.5,93.5" amplitude=1 material="Wagnis/Arrow" rotation="0.7" colour="1,1,1"/> <!--18,36-->
+<Billboard position="0,48.5,95.5" amplitude=1 material="Wagnis/Arrow" rotation="-0.5" colour="1,1,1"/> <!--18,33-->
+
+
+
+<!--
+<Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.8125, 0.082"/>
+<Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.926, 0.293, 0.082"/>
+<Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.515,0.199,0.054"/>
+<Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.085,0.457,0.804"/>
+<Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.256,0.804,0.085"/>
+<Billboard position="0,0,0" amplitude=1 material="Wagnis/Background" colour="0.695,0.085,0.804"/>
+-->
+
+ </Scene>
+</Level>
+
Copied: code/branches/Merge_HS18/data/levels/templates/wagnisCursor.oxt (from rev 12183, code/branches/wagnis_HS18/data/levels/templates/wagnisCursor.oxt)
===================================================================
--- code/branches/Merge_HS18/data/levels/templates/wagnisCursor.oxt (rev 0)
+++ code/branches/Merge_HS18/data/levels/templates/wagnisCursor.oxt 2018-12-11 17:53:27 UTC (rev 12184)
@@ -0,0 +1,42 @@
+<Template name=wagnisCursor>
+ <SpaceShip
+ hudtemplate = WagnisHUD
+ >
+
+
+<weaponslots>
+ <WeaponSlot position="0,0,0" />
+ <WeaponSlot position="0,0,0" />
+</weaponslots>
+<weaponsets>
+ <WeaponSet firemode=0 />
+ <WeaponSet firemode=1 />
+</weaponsets>
+<weaponpacks>
+ <WeaponPack>
+ <links>
+ <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
+ <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
+ </links>
+ <Weapon>
+ <WagnisGun mode=0 munitionpershot=0 delay=0 damage=1 muzzleoffset="0, 0, 0" />
+ <WagnisGun mode=1 munitionpershot=0 delay=0 damage=1000 muzzleoffset="0, 0, 0" />
+ </Weapon>
+ </WeaponPack>
+</weaponpacks>
+<munition>
+ <LaserMunition initialmagazines=2 maxmagazines=4 munitionpermagazine=1 replenishamount=2 replenishinterval=7.5/>
+</munition>
+
+ </SpaceShip>
+</Template>
+
+<Template name=spaceshipassffcameras defaults=0>
+ <SpaceShip>
+ <camerapositions>
+ <CameraPosition position="0,0, 0" drag=true mouselook=true />
+ <CameraPosition position="0,0, 0" drag=true mouselook=true />
+ </camerapositions>
+ </SpaceShip>
+</Template>
+
Copied: code/branches/Merge_HS18/data/overlays/WagnisHUD.oxo (from rev 12183, code/branches/wagnis_HS18/data/overlays/WagnisHUD.oxo)
===================================================================
--- code/branches/Merge_HS18/data/overlays/WagnisHUD.oxo (rev 0)
+++ code/branches/Merge_HS18/data/overlays/WagnisHUD.oxo 2018-12-11 17:53:27 UTC (rev 12184)
@@ -0,0 +1,26 @@
+<Template name="WagnisHUD">
+ <OverlayGroup name = "WagnisHuD" scale = "100, 100">
+
+ <WagnisHUD
+ name = "Navigation"
+ correctaspect = true
+ font = "Monofur"
+ textsize = 0.02
+ navMarkerSize = 0.05
+ aimMarkerSize = 0.02
+ healthMarkerSize = 0
+ healthLevelMarkerSize = 0
+ />
+
+ <WagnisHUDinfo
+ name = "descr1"
+ position = "0.2, 0.08"
+ pickpoint = "0, 1"
+ font = "Monofur"
+ caption = "player name"
+ colour = "1, 1, 1, 1"
+ textsize = 0.06
+ />
+
+ </OverlayGroup>
+</Template>
\ No newline at end of file
Modified: code/branches/Merge_HS18/src/libraries/tools/Timer.cc
===================================================================
--- code/branches/Merge_HS18/src/libraries/tools/Timer.cc 2018-12-11 17:33:26 UTC (rev 12183)
+++ code/branches/Merge_HS18/src/libraries/tools/Timer.cc 2018-12-11 17:53:27 UTC (rev 12184)
@@ -36,6 +36,7 @@
#include <set>
#include <boost/bimap.hpp>
+#include <functional>
#include "util/Clock.h"
#include "core/CoreIncludes.h"
Modified: code/branches/Merge_HS18/src/modules/CMakeLists.txt
===================================================================
--- code/branches/Merge_HS18/src/modules/CMakeLists.txt 2018-12-11 17:33:26 UTC (rev 12183)
+++ code/branches/Merge_HS18/src/modules/CMakeLists.txt 2018-12-11 17:53:27 UTC (rev 12184)
@@ -50,4 +50,5 @@
ADD_SUBDIRECTORY(flappyorx)
ADD_SUBDIRECTORY(pacman)
ADD_SUBDIRECTORY(orxyroad)
+ADD_SUBDIRECTORY(wagnis)
ADD_SUBDIRECTORY(TixyTaxyTorxy)
Modified: code/branches/Merge_HS18/src/modules/weapons/projectiles/CMakeLists.txt
===================================================================
--- code/branches/Merge_HS18/src/modules/weapons/projectiles/CMakeLists.txt 2018-12-11 17:33:26 UTC (rev 12183)
+++ code/branches/Merge_HS18/src/modules/weapons/projectiles/CMakeLists.txt 2018-12-11 17:53:27 UTC (rev 12184)
@@ -13,4 +13,5 @@
GravityBomb.cc
GravityBombField.cc
MineProjectile.cc
+ WagnisProjectile.cc
)
Copied: code/branches/Merge_HS18/src/modules/weapons/projectiles/WagnisProjectile.cc (from rev 12183, code/branches/wagnis_HS18/src/modules/weapons/projectiles/WagnisProjectile.cc)
===================================================================
--- code/branches/Merge_HS18/src/modules/weapons/projectiles/WagnisProjectile.cc (rev 0)
+++ code/branches/Merge_HS18/src/modules/weapons/projectiles/WagnisProjectile.cc 2018-12-11 17:53:27 UTC (rev 12184)
@@ -0,0 +1,90 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include "WagnisProjectile.h"
+
+#include "core/config/ConfigValueIncludes.h"
+#include "core/CoreIncludes.h"
+#include "core/GameMode.h"
+#include "core/command/Executor.h"
+
+#include "worldentities/pawns/Pawn.h"
+
+namespace orxonox
+{
+ RegisterClass(WagnisProjectile);
+
+ WagnisProjectile::WagnisProjectile(Context* context) : MovableEntity(context), BasicProjectile()
+ {
+ RegisterObject(WagnisProjectile);
+
+ this->setConfigValues();
+
+ // Get notification about collisions
+ if (GameMode::isMaster())
+ {
+ this->setMass(0.1f);
+ this->enableCollisionCallback();
+ this->setCollisionResponse(false);
+ this->setCollisionType(CollisionType::Dynamic);
+
+ // Create a sphere collision shape and attach it to the projectile.
+ collisionShape_ = new SphereCollisionShape(this->getContext());
+ setCollisionShapeRadius(3.0f);
+ this->attachCollisionShape(collisionShape_);
+
+ this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&BasicProjectile::destroyObject, this)));
+ }
+ }
+
+ WagnisProjectile::~WagnisProjectile()
+ {
+ }
+
+ void WagnisProjectile::setConfigValues()
+ {
+ SetConfigValue(lifetime_, 4.0f).description("The time in seconds a projectile stays alive");
+ }
+
+ void WagnisProjectile::tick(float dt)
+ {
+ SUPER(WagnisProjectile, tick, dt);
+
+ if (!this->isActive())
+ return;
+
+ this->destroyCheck();
+ }
+
+ bool WagnisProjectile::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint)
+ {
+ return this->processCollision(otherObject, contactPoint, cs);
+ }
+
+ void WagnisProjectile::setCollisionShapeRadius(float radius)
+ {
+ if (collisionShape_ != nullptr && radius > 0)
+ {
+ collisionShape_->setRadius(radius);
+ }
+ }
+}
Copied: code/branches/Merge_HS18/src/modules/weapons/projectiles/WagnisProjectile.h (from rev 12183, code/branches/wagnis_HS18/src/modules/weapons/projectiles/WagnisProjectile.h)
===================================================================
--- code/branches/Merge_HS18/src/modules/weapons/projectiles/WagnisProjectile.h (rev 0)
+++ code/branches/Merge_HS18/src/modules/weapons/projectiles/WagnisProjectile.h 2018-12-11 17:53:27 UTC (rev 12184)
@@ -0,0 +1,68 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Fabian 'x3n' Landau
+ * Co-authors:
+ * simonmie
+ *
+ */
+
+/**
+ @file Projectile.h
+ @brief Definition of the Projectile class.
+*/
+
+#ifndef _WagnisProjectile__
+#define _WagnisProjectile__
+
+#include "weapons/WeaponsPrereqs.h"
+
+#include "tools/Timer.h"
+#include "worldentities/MovableEntity.h"
+#include "objects/collisionshapes/SphereCollisionShape.h"
+
+#include "BasicProjectile.h"
+
+namespace orxonox
+{
+ class _WeaponsExport WagnisProjectile : public MovableEntity, public BasicProjectile
+ {
+ public:
+ WagnisProjectile(Context* context);
+ virtual ~WagnisProjectile();
+
+ void setConfigValues();
+
+ virtual void tick(float dt) override;
+ virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) override;
+
+ protected:
+ virtual void setCollisionShapeRadius(float radius);
+ float lifetime_; //!< The time the projectile exists.
+
+ private:
+ Timer destroyTimer_; //!< Timer to destroy the projectile after its lifetime has run out.
+ WeakPtr<SphereCollisionShape> collisionShape_; // The collision shape of the projectile.
+ };
+}
+
+#endif /* _WagnisProjectile__ */
Modified: code/branches/Merge_HS18/src/modules/weapons/weaponmodes/CMakeLists.txt
===================================================================
--- code/branches/Merge_HS18/src/modules/weapons/weaponmodes/CMakeLists.txt 2018-12-11 17:33:26 UTC (rev 12183)
+++ code/branches/Merge_HS18/src/modules/weapons/weaponmodes/CMakeLists.txt 2018-12-11 17:53:27 UTC (rev 12184)
@@ -12,4 +12,5 @@
SimpleRocketFire.cc
GravityBombFire.cc
MineGun.cc
+ WagnisGun.cc
)
Copied: code/branches/Merge_HS18/src/modules/weapons/weaponmodes/WagnisGun.cc (from rev 12183, code/branches/wagnis_HS18/src/modules/weapons/weaponmodes/WagnisGun.cc)
===================================================================
--- code/branches/Merge_HS18/src/modules/weapons/weaponmodes/WagnisGun.cc (rev 0)
+++ code/branches/Merge_HS18/src/modules/weapons/weaponmodes/WagnisGun.cc 2018-12-11 17:53:27 UTC (rev 12184)
@@ -0,0 +1,116 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+ * The WagnisGun, WagnisProjectile and WagnisCursor was made to be used as a "cursor", by fireing invisible projectiles at an object.
+ * You can then monitor the Objects HP in order to know which one has been hit (=clicked). And yes, it isn't a very beautiful solution.
+*/
+
+#include "WagnisGun.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "core/command/Executor.h"
+
+#include "graphics/Model.h"
+#include "weaponsystem/Weapon.h"
+#include "weaponsystem/WeaponPack.h"
+#include "weaponsystem/WeaponSystem.h"
+#include "worldentities/WorldEntity.h"
+#include "worldentities/pawns/Pawn.h"
+
+#include "weapons/projectiles/WagnisProjectile.h"
+#include "weapons/MuzzleFlash.h"
+
+namespace orxonox
+{
+ RegisterClass(WagnisGun);
+
+ WagnisGun::WagnisGun(Context* context) : WeaponMode(context)
+ {
+ RegisterObject(WagnisGun);
+
+ this->reloadTime_ = 0.5f;
+ this->damage_ = 0.0f; //default 15
+ this->speed_ = 800.0f;
+ this->delay_ = 0.0f;
+ this->setMunitionName("LaserMunition");
+
+
+
+ this->delayTimer_.setTimer(this->delay_, false, createExecutor(createFunctor(&WagnisGun::shot, this)));
+ this->delayTimer_.stopTimer();
+ hudImageString_ = "Orxonox/WSHUD_WM_HsW01";
+ }
+
+ WagnisGun::~WagnisGun()
+ {
+ }
+
+ void WagnisGun::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+ {
+ SUPER(WagnisGun, XMLPort, xmlelement, mode);
+
+ XMLPortParam(WagnisGun, "delay", setDelay, getDelay, xmlelement, mode);
+ XMLPortParam(WagnisGun, "material", setMaterial, getMaterial, xmlelement, mode);
+ XMLPortParam(WagnisGun, "projectileMesh", setMesh, getMesh, xmlelement, mode);
+ XMLPortParam(WagnisGun, "sound", setSound, getSound, xmlelement, mode);
+ }
+
+ /**
+ @brief
+ Set the firing delay.
+ @param delay
+ The firing delay in seconds.
+ */
+ void WagnisGun::setDelay(float delay)
+ {
+ this->delay_ = delay;
+ this->delayTimer_.setInterval(this->delay_);
+ }
+
+ void WagnisGun::fire()
+ {
+ this->delayTimer_.startTimer();
+ }
+
+ /**
+ @brief
+ Fires the weapon. Creates a projectile and fires it.
+ */
+ void WagnisGun::shot()
+ {
+ assert( this->getWeapon() && this->getWeapon()->getWeaponPack() && this->getWeapon()->getWeaponPack()->getWeaponSystem() && this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn() );
+
+ // Create the projectile.
+ WagnisProjectile* projectile = new WagnisProjectile(this->getContext());
+
+ this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
+ projectile->setOrientation(this->getMuzzleOrientation());
+ projectile->setPosition(this->getMuzzlePosition());
+ projectile->setVelocity(this->getMuzzleDirection() * this->speed_);
+
+ projectile->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
+ projectile->setDamage(this->getDamage());
+ projectile->setShieldDamage(this->getShieldDamage());
+ projectile->setHealthDamage(this->getHealthDamage());
+ }
+}
Copied: code/branches/Merge_HS18/src/modules/weapons/weaponmodes/WagnisGun.h (from rev 12183, code/branches/wagnis_HS18/src/modules/weapons/weaponmodes/WagnisGun.h)
===================================================================
--- code/branches/Merge_HS18/src/modules/weapons/weaponmodes/WagnisGun.h (rev 0)
+++ code/branches/Merge_HS18/src/modules/weapons/weaponmodes/WagnisGun.h 2018-12-11 17:53:27 UTC (rev 12184)
@@ -0,0 +1,93 @@
+#ifndef _WagnisGun__
+#define _WagnisGun__
+
+#include "weapons/WeaponsPrereqs.h"
+
+#include "tools/Timer.h"
+#include "weaponsystem/WeaponMode.h"
+
+namespace orxonox
+{
+
+ /**
+ @brief
+ Shoots laser beams.
+ @author
+ Hagen Seifert
+ @ingroup WeaponsWeaponModes
+ */
+ class _WeaponsExport WagnisGun : public WeaponMode
+ {
+ public:
+ WagnisGun(Context* context);
+ virtual ~WagnisGun();
+
+ virtual void fire() override;
+ virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+
+ protected:
+ /**
+ @brief Set the mesh.
+ @param mesh The mesh name.
+ */
+ void setMesh(const std::string& mesh)
+ { this->mesh_ = mesh; }
+
+ /**
+ @brief Get the mesh.
+ @return Returns the mesh name.
+ */
+ const std::string& getMesh() const
+ { return this->mesh_; }
+
+ /**
+ @brief Set the sound.
+ @param sound The Sound name.
+ */
+ void setSound(const std::string& sound)
+ { this->sound_ = sound; }
+
+ /**
+ @brief Get the sound.
+ @return Returns the sound name.
+ */
+ const std::string& getSound() const
+ { return this->sound_; }
+
+ /**
+ @brief Set the material.
+ @param material The material name.
+ */
+ void setMaterial(const std::string& material)
+ { this->material_ = material; }
+ /**
+ @brief Get the material.
+ @return Returns the material name.
+ */
+ const std::string& getMaterial() const
+ { return this->material_; }
+
+ void setDelay(float delay);
+ /**
+ @brief Get the firing delay.
+ @return Returns the firing delay in seconds.
+ */
+ float getDelay() const
+ { return this->delay_; }
+
+ virtual void shot();
+ void muzzleflash();
+
+ std::string material_; //!< The material.
+ std::string mesh_; //!< The mesh.
+ std::string sound_; //!< The sound.
+
+
+
+ float speed_; //!< The speed of the fired projectile.
+ float delay_; //!< The firing delay.
+ Timer delayTimer_; //!< A timer to delay the firing.
+ };
+}
+
+#endif /* _WagnisGun__ */
More information about the Orxonox-commit
mailing list