Jozzo

joined 1 year ago
 

[–] [email protected] 1 points 1 week ago (1 children)

Yep it's not near finished. This is one of those projects that's sat in my "keep an eye on it" bookmarks for a good while, I figured I'd post it to get some attention on it, because it does look very promising.

 

Spacebar is a free, opensource selfhostable discord-compatible chat, voice and video platform.

  • Discord-compatible (Use all your custom clients/bots with minimal changes)
  • Selfhostable (Server)
  • Open Source (GitHub Organization)
  • Configurable (Configure every aspect and limits to your needs)
  • Decentralized (no abuse of power and doesn't have a single point of failure)
  • Extendable (secure and cross-platform plugin system)
  • Themeable (cross-platform theme system with design editor)
  • Secure (publicly audited and hosted FOSS software for transparent foundation in terms of security)
[–] [email protected] 6 points 1 month ago

Note that the attacker needs to already have access to your Microsoft 365 account to do any of this. Fuck copilot and all, but this isn't something they couldn't achieve before.

[–] [email protected] 7 points 2 months ago

Love how the free spot is "no conclave update" lol

[–] [email protected] 38 points 2 months ago (8 children)

Got hit with this in the middle of work. We only have one customer using CrowdStrike, and only staff PCs, no infrastructure. But this one is REAL bad, caused by turning your PC on, and cannot be patched - each affected PC needs to be manually fixed. Would not be surprised to see Linux usage go up after this.

[–] [email protected] 17 points 2 months ago (9 children)

One attendee and the shooter are dead

 

On June 29, 2024, at 6:30 P.M. Pacific Time, Roll20 learned that an administrative account was compromised. By 7:30 P.M. Pacific Time, we acted to ensure that all unauthorized access was blocked, and we began the process of investigating the incident to determine the scope.

Following our investigation, we learned that the unauthorized third-party had access to administrative tools, which may have resulted in the exposure of personal information, such as your: first and last name, email address, last known IP address, and the last 4 digits of your credit card (solely if you had a stored payment with us).

Notably, the compromised administrative tooling did not expose your password or your full payment information, such as your address or credit card number.

While we have no reason to believe that your personal information has been misused, we are notifying you out of an abundance of caution.

We take your privacy and security very seriously, and we deeply regret that this incident occurred. We will be implementing an action plan to further enhance the security of our administrative tools going forward.

If you have questions, or if you would like to view a copy of your account data that the third party may have had access to, please reach out to us at https://help.roll20.net and create a support ticket with the subject line “Incident Data Request” and we will be happy to assist you.

Here are some resources containing good best practices for protecting your information online which we recommend: https://consumer.ftc.gov/online-security

[–] [email protected] 6 points 3 months ago

It depends entirely on the company you work for. Even then, I wouldn't exactly describe the work as "chill"

[–] [email protected] 2 points 3 months ago

This would make a pretty evil Zedruu gift

[–] [email protected] 2 points 3 months ago

Thematically awesome/terrifying

[–] [email protected] 2 points 3 months ago

I patched together some version of this using nested dictionaries:

var abilities: Dictionary = {
	AbilityData.Trigger.BEFORE_ATTACK : {},
	AbilityData.Trigger.ON_ATTACK : {},
	AbilityData.Trigger.ON_HIT : {},
	AbilityData.Trigger.ON_KILL : {},
	AbilityData.Trigger.ON_DEATH : {},
	AbilityData.Trigger.ON_JUMP : {},
	AbilityData.Trigger.PASSIVE : {}
}

with each value being another key:value pair of { "ability_id": <ability-node> } so I can keep a reference to the Ability node and use dictionary functions like .has() to check if a character has a specific ability:

func has_ability(ability_data: AbilityData) -> bool:
	if abilities[ability_data.trigger_type].has(ability_data.id):
		return true
	return false

Then when a trigger fires, it calls this (I omitted the return code):

// Activates all abilities with the specified trigger type. Returns an array containing each ability that was activated this way.
//trigger_type is an enum
//data is just a resource containing things like position, target, ability owner, etc
func trigger(trigger_type: AbilityData.Trigger, data: AbilityActivationData) -> Array[Ability]:
	var abilities_to_activate: Dictionary = abilities.get(trigger_type)
	
	// Loops through the list of Ability nodes.
	for ability in abilities_to_activate.values():
		ability.activate(data)
		abilities_activated.append(ability)

This seems to work, but it still gives me that tickling sensation that it could be a little cleaner.

[–] [email protected] 1 points 3 months ago (1 children)

I think I understand...

Instead of the player iterating through and calling all of its abilities, the ability just connects directly to whichever signal it needs on the player?

My current setup is to add each Ability as a node to the player, so right now it follows the "call down, signal up" adage that I hear everyone say. What would be a good way to implment the other way? I assume I should rework my current setup otherwise it'd be "signal down, signal up"?

 

For character abilities that have a certain trigger condition, eg. "OnAttack", "OnJump", "OnDamaged" etc..

Currently each of these triggers is a signal. When a signal fires, the character loops through all of its abilities and activates each one with that specific condition, so it just runs an if statement for every ability, regardless of whether it has that condition or not:

if ability.trigger_condition == Triggers.OnAttack:
  ability.activate()

My issue is that this could get a little unscalable with many characters on-screen each having many abilities of their own. A character could have 1 OnDamaged ability and 19 OnAttack abilities, but when an "OnDamaged" signal is received, it will still loop through all 19 OnAttack abilities.

Any advice on this is appreciated, thank you all.

[–] [email protected] 2 points 4 months ago (1 children)

Win11 doesn't let you past setup if you dont have an internet connection.

 

Wanted some opinions on ways to set up triggering "on-kill" effects. In short: The player can have abilities that trigger effects whenever they shoot and kill an enemy. I'm also looking to extend abilities to enemies as well, so can't just hardcode a player reference.

Currently I'm doing it like this:

  • Enemy signals that it died -> the bullet receives this and signals that it killed Enemy -> the player's weapon receives this and signals that it's bullet killed Enemy -> the player receives this and triggers it's on-kill abilities.

It simultaneously feels like a good way to go about it but also a long mess. The other option I've considered is:

  • Each bullet has a reference to it's owner (eg. player). When an enemy dies to a bullet, it looks to the bullet's owner reference and tells it to trigger it's on-kill effects.

This way is a lot simpler to write, but is error prone eg. In cases where the bullet's owner is killed while their attack is mid-air.

Thank you all!

 

Figured I'd share this project as I don't see many that know about it! (Only available for Windows)

 

A massive asset bundle by Kenney is free right now on itch.io. It's only available for 9 more hours as of posting.

All included assets can be previewed here: https://kenney.nl/data/itch/preview/

Includes 2D, 3D, and audio assets!

view more: next ›