[Orxonox-commit 5189] r9854 - in code/branches/invaders: data/levels/templates data/overlays src/modules/invader
zifloria at orxonox.net
zifloria at orxonox.net
Mon Dec 2 15:53:09 CET 2013
Author: zifloria
Date: 2013-12-02 15:53:08 +0100 (Mon, 02 Dec 2013)
New Revision: 9854
Modified:
code/branches/invaders/data/levels/templates/enemyInvader.oxt
code/branches/invaders/data/overlays/InvaderHUD.oxo
code/branches/invaders/src/modules/invader/Invader.cc
code/branches/invaders/src/modules/invader/Invader.h
code/branches/invaders/src/modules/invader/InvaderEnemy.cc
code/branches/invaders/src/modules/invader/InvaderEnemy.h
code/branches/invaders/src/modules/invader/InvaderHUDinfo.cc
code/branches/invaders/src/modules/invader/InvaderHUDinfo.h
Log:
yeaHHH
Modified: code/branches/invaders/data/levels/templates/enemyInvader.oxt
===================================================================
--- code/branches/invaders/data/levels/templates/enemyInvader.oxt 2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/data/levels/templates/enemyInvader.oxt 2013-12-02 14:53:08 UTC (rev 9854)
@@ -6,9 +6,9 @@
spawnparticleduration = 3
explosionchunks = 4
- health = 1
- maxhealth = 1
- initialhealth = 1
+ health = 100
+ maxhealth = 100
+ initialhealth = 100
shieldhealth = 35
initialshieldhealth = 35
@@ -45,9 +45,13 @@
<MultiStateEngine position="-7.6, 0, 0" template=spaceshipescortengine />
</engines>
<attached>
- <Model position="0,0,0" yaw=90 pitch=0 roll=0 scale=8 mesh="escortShip.mesh" />
- <Model position="0,0,0" yaw=180 pitch=90 roll=0 scale=8 mesh="escortWeapon.mesh" />
+ <Model position="0,0,0" yaw=180 pitch=270 roll=0 scale=2 mesh="swallow_mat.mesh" />
+ <Model position="0,0,0" yaw=180 pitch=270 roll=0 scale=2 mesh="escortWeapon.mesh" />
<!--Model mesh="cube.mesh" mass=10 position="0,0,3" scale3D="10,4,8" />
+
+swallow_mat.mesh
+"ghost.mesh"
+
<Model mesh="cube.mesh" mass=10 position="12.6,-2,3" scale3D="2.8,2.8,11" />
<Model mesh="cube.mesh" mass=10 position="-12.6,-2,3" scale3D="2.8,2.8,11" />
<Model mesh="cube.mesh" mass=10 position="0,0,-12" scale3D="4,4,7" /-->
Modified: code/branches/invaders/data/overlays/InvaderHUD.oxo
===================================================================
--- code/branches/invaders/data/overlays/InvaderHUD.oxo 2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/data/overlays/InvaderHUD.oxo 2013-12-02 14:53:08 UTC (rev 9854)
@@ -67,6 +67,27 @@
showlevel = false
showpoints = true
/>
+
+
+ <OverlayText
+ position = "0.4, 0.1"
+ pickpoint = "0.0, 0.0"
+ font = "ShareTechMono"
+ textsize = 0.04
+ colour = "1.0, 1.0, 1.0, 1.0"
+ align = "left"
+ caption = "X"
+ />
+ <InvaderHUDinfo
+ position = "0.42, 0.1"
+ pickpoint = "0.0, 0.0"
+ font = "ShareTechMono"
+ textsize = 0.04
+ colour = "1.0, 1.0, 1.0, 1.0"
+ align = "left"
+
+ showMultiplier = true
+ />
</OverlayGroup>
</Template>
Modified: code/branches/invaders/src/modules/invader/Invader.cc
===================================================================
--- code/branches/invaders/src/modules/invader/Invader.cc 2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/Invader.cc 2013-12-02 14:53:08 UTC (rev 9854)
@@ -86,11 +86,14 @@
if (player == NULL)
return;
- for (int i = 0; i < level; i++)
+ srand(player->getPosition().x + player->getPosition().y);
+ for (int i = 0; i < level * 2; i++)
{
- SmartPtr<InvaderEnemy> newPawn = new InvaderEnemy(this->center_->getContext());
+ WeakPtr<InvaderEnemy> newPawn = new InvaderEnemy(this->center_->getContext());
newPawn->addTemplate("enemyinvader");
- newPawn->setPosition(player->getPosition() + Vector3(500 + 100 * i, 0, 0));
+ newPawn->setPlayer(player);
+ newPawn->level = level;
+ newPawn->setPosition(player->getPosition() + Vector3(500 + 100 * i, 0, float(rand())/RAND_MAX * 400 - 200));
}
}
Modified: code/branches/invaders/src/modules/invader/Invader.h
===================================================================
--- code/branches/invaders/src/modules/invader/Invader.h 2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/Invader.h 2013-12-02 14:53:08 UTC (rev 9854)
@@ -65,6 +65,7 @@
int getLives(){return this->lives;}
int getLevel(){return this->level;}
int getPoints(){return this->point;}
+ int getMultiplier(){return this->multiplier;}
void costLife(){lives--; if (lives <= 0) end();};
void levelUp(){level++;}
Modified: code/branches/invaders/src/modules/invader/InvaderEnemy.cc
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderEnemy.cc 2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/InvaderEnemy.cc 2013-12-02 14:53:08 UTC (rev 9854)
@@ -43,17 +43,31 @@
{
RegisterObject(InvaderEnemy);
enableCollisionCallback();
+ lifetime = 0;
}
void InvaderEnemy::tick(float dt)
{
- setVelocity(Vector3(500 ,0, 0));
+ lifetime += dt;
+ if (lifetime > 5000)
+ {
+ removeHealth(2000);
+ }
+ if (player != NULL)
+ {
+ float newZ = player->getPosition().z - getPosition().z;
+ if (newZ < 0)
+ newZ = (-100 < newZ)?-100:newZ;
+ else
+ newZ = (100 > newZ)?100:newZ;
+ setVelocity(Vector3(1000 - level * 100 , 0, newZ));
+ }
SUPER(InvaderEnemy, tick, dt);
}
inline bool InvaderEnemy::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
{
- setVelocity(Vector3(900,0,0));
+ setVelocity(Vector3(1000,0,0));
removeHealth(2000);
return false;
}
Modified: code/branches/invaders/src/modules/invader/InvaderEnemy.h
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderEnemy.h 2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/InvaderEnemy.h 2013-12-02 14:53:08 UTC (rev 9854)
@@ -49,14 +49,18 @@
virtual void tick(float dt);
virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator);
+ virtual void setPlayer(WeakPtr<InvaderShip> player){this->player = player;}
+ int level;
private:
WeakPtr<Invader> getGame();
WeakPtr<Invader> game;
+ WeakPtr<InvaderShip> player;
Camera* camera;
bool isFireing;
float speed, damping;
float lastTimeFront, lastTimeLeft;
+ float lifetime;
struct Velocity
{
float x;
Modified: code/branches/invaders/src/modules/invader/InvaderHUDinfo.cc
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderHUDinfo.cc 2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/InvaderHUDinfo.cc 2013-12-02 14:53:08 UTC (rev 9854)
@@ -43,6 +43,7 @@
this->bShowLives_ = false;
this->bShowLevel_ = false;
this->bShowPoints_ = false;
+ this->bShowMultiplier_ = false;
}
InvaderHUDinfo::~InvaderHUDinfo()
@@ -56,6 +57,7 @@
XMLPortParam(InvaderHUDinfo, "showlives", setShowLives, getShowLives, xmlelement, mode).defaultValues(false);
XMLPortParam(InvaderHUDinfo, "showPoints", setShowPoints, getShowPoints, xmlelement, mode).defaultValues(false);
XMLPortParam(InvaderHUDinfo, "showLevel", setShowLevel, getShowLevel, xmlelement, mode).defaultValues(false);
+ XMLPortParam(InvaderHUDinfo, "showMultiplier", setShowMultiplier, getShowMultiplier, xmlelement, mode).defaultValues(false);
}
void InvaderHUDinfo::tick(float dt)
@@ -79,6 +81,11 @@
const std::string& points = multi_cast<std::string>(this->InvaderGame->getPoints());
this->setCaption(points);
}
+ else if(this->bShowMultiplier_)
+ {
+ const std::string& Multiplier = multi_cast<std::string>(this->InvaderGame->getMultiplier());
+ this->setCaption(Multiplier);
+ }
}
}
Modified: code/branches/invaders/src/modules/invader/InvaderHUDinfo.h
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderHUDinfo.h 2013-12-02 14:49:14 UTC (rev 9853)
+++ code/branches/invaders/src/modules/invader/InvaderHUDinfo.h 2013-12-02 14:53:08 UTC (rev 9854)
@@ -59,11 +59,18 @@
inline bool getShowPoints() const
{ return this->bShowPoints_; }
+ inline void setShowMultiplier(bool value)
+ { this->bShowMultiplier_ = value; }
+ inline bool getShowMultiplier() const
+ { return this->bShowMultiplier_; }
+
+
private:
Invader* InvaderGame;
bool bShowLives_;
bool bShowLevel_;
bool bShowPoints_;
+ bool bShowMultiplier_;
};
}
#endif /* _InvaderHUDinfo_H__ */
More information about the Orxonox-commit
mailing list