public Portal(World world, int actorSNO, Vector3D position, Dictionary<int, TagMapEntry> tags) : base(world, world.NewActorID, position, tags) { this.SNOId = actorSNO; this.Destination = new ResolvedPortalDestination { WorldSNO = tags[(int)MarkerTagTypes.DestinationWorld].Int2, }; if (tags.ContainsKey((int)MarkerTagTypes.DestinationLevelArea)) this.Destination.DestLevelAreaSNO = tags[(int)MarkerTagTypes.DestinationLevelArea].Int2; if (tags.ContainsKey((int)MarkerTagTypes.DestinationActorTag)) this.Destination.StartingPointActorTag = tags[(int)MarkerTagTypes.DestinationActorTag].Int2; else Logger.Warn("Found portal {0}without target location actor", this.SNOId); this.Field8 = this.SNOId; this.Field2 = 16; this.Field3 = 0; this.CollFlags = 0x00000001; // FIXME: Hardcoded crap; probably don't need to set most of these. /komiga this.Attributes[GameAttribute.MinimapActive] = true; this.Attributes[GameAttribute.Hitpoints_Max_Total] = 1f; this.Attributes[GameAttribute.Hitpoints_Max] = 0.0009994507f; this.Attributes[GameAttribute.Hitpoints_Total_From_Level] = 3.051758E-05f; this.Attributes[GameAttribute.Hitpoints_Cur] = 0.0009994507f; this.Attributes[GameAttribute.TeamID] = 1; this.Attributes[GameAttribute.Level] = 1; }
public Portal(World world, int snoId, TagMap tags) : base(world, snoId, tags) { this.Destination = new ResolvedPortalDestination { WorldSNO = tags[MarkerKeys.DestinationWorld].Id, }; if (tags.ContainsKey(MarkerKeys.DestinationLevelArea)) this.Destination.DestLevelAreaSNO = tags[MarkerKeys.DestinationLevelArea].Id; if (tags.ContainsKey(MarkerKeys.DestinationActorTag)) this.Destination.StartingPointActorTag = tags[MarkerKeys.DestinationActorTag]; else Logger.Warn("Found portal {0}without target location actor", this.ActorSNO.Id); this.Field2 = 16; // FIXME: Hardcoded crap; probably don't need to set most of these. /komiga this.Attributes[GameAttribute.MinimapActive] = true; this.Attributes[GameAttribute.Hitpoints_Max_Total] = 1f; this.Attributes[GameAttribute.Hitpoints_Max] = 0.0009994507f; this.Attributes[GameAttribute.Hitpoints_Total_From_Level] = 3.051758E-05f; this.Attributes[GameAttribute.Hitpoints_Cur] = 0.0009994507f; this.Attributes[GameAttribute.Level] = 1; }
public PortalSpecifierMessage(string[] Data) { Id = 0x004B; Field0 = int.Parse(Data[0]); Field1 = new ResolvedPortalDestination() { snoWorld=int.Parse(Data[1]), Field1=int.Parse(Data[2]), snoDestLevelArea=int.Parse(Data[3]), }; }
public Portal(World world, int snoId, TagMap tags) : base(world, snoId, tags) { try { this.Destination = new ResolvedPortalDestination { WorldSNO = tags[MarkerKeys.DestinationWorld].Id, DestLevelAreaSNO = tags[MarkerKeys.DestinationWorld].Id, StartingPointActorTag = tags[MarkerKeys.DestinationActorTag] }; // Override minimap icon in merkerset tags if (tags.ContainsKey(MarkerKeys.MinimapTexture)) { MinimapIcon = tags[MarkerKeys.MinimapTexture].Id; } else { MinimapIcon = ActorData.TagMap[ActorKeys.MinimapMarker].Id; } } catch (KeyNotFoundException) { Logger.Warn("Portal {0} has incomplete definition", this.ActorSNO.Id); } this.Field2 = 16; // FIXME: Hardcoded crap; probably don't need to set most of these. /komiga //this.Attributes[GameAttribute.MinimapActive] = true; //this.Attributes[GameAttribute.Hitpoints_Max_Total] = 1f; //this.Attributes[GameAttribute.Hitpoints_Max] = 0.0009994507f; //this.Attributes[GameAttribute.Hitpoints_Total_From_Level] = 3.051758E-05f; //this.Attributes[GameAttribute.Hitpoints_Cur] = 0.0009994507f; //this.Attributes[GameAttribute.Level] = 1; // EREKOSE STUFF //Logger.Debug(" (Portal ctor) position is {0}", this._position); //Logger.Debug(" (Portal ctor) quest range is {0}", this._questRange); // Logger.Debug(" (Portal ctor) is in scene SNO {0}", this.CurrentScene.SceneSNO); //Logger.Debug(" (Portal Ctor) portal used has actor SNO {3}, SNO Name {0}, exists in world sno {1}, has dest world sno {2}", this.ActorSNO.Name, tags[MarkerKeys.DestinationWorld].Id, tags[MarkerKeys.DestinationWorld].Id, snoId); }
public Portal(World world) : base(world, world.NewActorID) { this.Destination = new ResolvedPortalDestination(); this.Destination.WorldSNO = -1; this.Destination.DestLevelAreaSNO = -1; this.TargetPos = new Vector3D(); // FIXME: Hardcoded crap this.Attributes[GameAttribute.MinimapActive] = true; this.Attributes[GameAttribute.Hitpoints_Max_Total] = 1f; this.Attributes[GameAttribute.Hitpoints_Max] = 0.0009994507f; this.Attributes[GameAttribute.Hitpoints_Total_From_Level] = 3.051758E-05f; this.Attributes[GameAttribute.Hitpoints_Cur] = 0.0009994507f; this.Attributes[GameAttribute.TeamID] = 1; this.Attributes[GameAttribute.Level] = 1; this.World.Enter(this); // Enter only once all fields have been initialized to prevent a run condition }
public Portal(World world, int snoId, TagMap tags) : base(world, snoId, tags) { try { this.Destination = new ResolvedPortalDestination { WorldSNO = tags[MarkerKeys.DestinationWorld].Id, DestLevelAreaSNO = tags[MarkerKeys.DestinationLevelArea].Id, StartingPointActorTag = tags[MarkerKeys.DestinationActorTag] }; // Override minimap icon in merkerset tags if (tags.ContainsKey(MarkerKeys.MinimapTexture)) { MinimapIcon = tags[MarkerKeys.MinimapTexture].Id; } else { MinimapIcon = ActorData.TagMap[ActorKeys.MinimapMarker].Id; } } catch (KeyNotFoundException) { Logger.Warn("Portal {0} has incomplete definition", this.ActorSNO.Id); } this.Field2 = 16; // FIXME: Hardcoded crap; probably don't need to set most of these. /komiga //this.Attributes[GameAttribute.MinimapActive] = true; //this.Attributes[GameAttribute.Hitpoints_Max_Total] = 1f; //this.Attributes[GameAttribute.Hitpoints_Max] = 0.0009994507f; //this.Attributes[GameAttribute.Hitpoints_Total_From_Level] = 3.051758E-05f; //this.Attributes[GameAttribute.Hitpoints_Cur] = 0.0009994507f; //this.Attributes[GameAttribute.Level] = 1; }
public override void Parse(GameBitBuffer buffer) { ActorID = buffer.ReadUInt(32); Destination = new ResolvedPortalDestination(); Destination.Parse(buffer); }
public override void Parse(GameBitBuffer buffer) { Field0 = buffer.ReadInt(32); Field1 = new ResolvedPortalDestination(); Field1.Parse(buffer); }